gpt4 book ai didi

linux - 象夫基准

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:40 29 4
gpt4 key购买 nike

我发现很难理解如何与 Mahout 交互。我有这个测试代码来训练和测试朴素贝叶斯分类。我想测量训练所需的时间,并且想从输出文件中读取准确度值。我不知道如何阅读输出文件或衡量以良好方式学习所需的时间(例如,我可以自动运行此脚本 10 次)。感谢您的帮助!

export WORK_DIR=/user/hue/Bayes-Test/newTestData
mahout seqdirectory -i ${WORK_DIR}/data-all -o ${WORK_DIR}/data-seq -ow
mahout seq2sparse -i ${WORK_DIR}/data-seq -o ${WORK_DIR}/data-vectors -lnorm -nv -wt tfidf
mahout split -i ${WORK_DIR}/data-vectors/tfidf-vectors --trainingOutput ${WORK_DIR}/train-vectors --testOutput ${WORK_DIR}/test-vectors -randomSelectionPct 99 --overwrite --sequenceFiles -xm sequential
mahout trainnb -i ${WORK_DIR}/train-vectors -el -o ${WORK_DIR}/model -li ${WORK_DIR}/labelindex -ow -c
mahout testnb -i ${WORK_DIR}/test-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/output-testing -c

最佳答案

mahout testnb 将显示训练模型在给定数据集上的表现的混淆矩阵和分类统计数据。它实际上并不输出任何文件到目录。

您提供的 -o ${WORK_DIR}/output-testing 参数实际上未被使用,因此:

mahout testnb -i ${WORK_DIR}/test-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/output-testing -c

应该改为:

mahout testnb -i ${WORK_DIR}/test-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -c

这将显示一个混淆矩阵和一些统计数据——如下所示:

=======================================================
Statistics
-------------------------------------------------------
Kappa 0.8523
Accuracy 88.6853%
Reliability 84.3296%
Reliability (standard deviation) 0.2171
Weighted precision 0.8874
Weighted recall 0.8869
Weighted F1 score 0.8846

因此,如果您想多次运行,以测试挂钟时间或准确性或两者兼而有之,您可以将(调整后的)脚本的 stderr/stdout 通过管道传输到一个文本文件中,例如。运行次数的平均准确度(通过搜索“准确度”等)。如果您不想测量整个管道的挂钟时间,我建议只运行一次 seqdirectoryseq2sparse,因为这些步骤会占用大量时间,并循环 split trainnbtestnb

对您的脚本进行一些调整:

export WORK_DIR=/user/hue/Bayes-Test/newTestData
mahout seqdirectory -i ${WORK_DIR}/data-all -o {WORK_DIR}/data-seq -ow
// use either -lnorm -n 2 (log L2 length normalization) or no normalization
mahout seq2sparse -i ${WORK_DIR}/data-seq -o ${WORK_DIR}/data-vectors -nv -wt tfidf
// adjust the randomSelectionPct down to 40 for a 60/40 train/test set
mahout split -i ${WORK_DIR}/data-vectors/tfidf-vectors --trainingOutput ${WORK_DIR}/train-vectors --testOutput ${WORK_DIR}/test-vectors -randomSelectionPct 40 --overwrite --sequenceFiles -xm sequential
mahout trainnb -i ${WORK_DIR}/train-vectors -o ${WORK_DIR}/model -li ${WORK_DIR}/labelindex -ow -c
mahout testnb -i ${WORK_DIR}/test-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -c

请注意:Mahout 有一个 Spark implementation of Naive Bayes可以从命令行和 programmatically 运行.这对确定准确性更有用。

关于linux - 象夫基准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33732418/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com