我正在做推文的情感分析。我使用了mahout朴素贝叶斯分类器,我创建了一个目录" data ".Inside "data“我创建了另外三个目录,分别命名为" positive ","negative"," uncertain "..Then我在每个正的,负的和不确定的数据目录上保存了151个文件(总计151Mb)我将数据目录保存在hdfs..below中是我运行的一组命令来生成模型和标签索引。
bin/mahout seqdirectory -i ${WORK_DIR}/data -o ${WORK_DIR}/data-seq
bin/mahout seq2sparse -i ${WORK_DIR}/data-seq -o ${WORK_DIR}/data-vectors -lnorm -nv -wttfidf
bin/mahout split -i ${WORK_DIR}/data-vectors/tfidf-vectors --trainingOutput ${WORK_DIR}/data-train-vectors --testOutput ${WORK_DIR}/data-test-vectors --randomSelectionPct 40 --overwrite --sequenceFiles -xm sequential
bin/mahout trainnb -i ${WORK_DIR}/data-train-vectors -el -o ${WORK_DIR}/model -li ${WORK_DIR}/labelindex -ow $c在使用"testnb“命令对相同的数据集进行测试后,我得到了混淆矩阵,如下所示:
bin/mahout testnb -i ${WORK_DIR}/data-train-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/data-testing $c
Confusion Matrix
-------------------------------------------------------
a b c <--Classified as
151 0 0 | 151 a = negative
0 151 0 | 151 b = positive
0 0 151 | 151 c = uncertain然后我以同样的方式创建了一个目录"data2“,并将一些随机数据(这是训练数据的子集(30个文件(每个文件总大小为30MB) )放在其中的正、负、不确定目录中。我使用下面给出的"seq2sparse”命令创建了一个向量:-
bin/mahout seq目录-i ${WORK_DIR}/data2 -o ${WORK_DIR}/data2-seq
bin/mahout seq2sparse -i ${WORK_DIR}/data2- -o ${WORK_DIR}/data2-vectors -lnorm -nv -wttfidf
在使用由前一组数据创建的model/lablelindex运行"testnb“时,使用下面给出的命令:-
bin/mahout testnb -i ${WORK_DIR}/data2-vectors/tfidf-vectors/part-r-00000 -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/data2-testing $c我得到了像这样的混淆矩阵。
Confusion Matrix
-------------------------------------------------------
a b c <--Classified as
0 30 0 | 30 a = negative
0 30 0 | 30 b = positive
0 30 0 | 30 c = uncertain谁能告诉我为什么这是coming.Am,我使用正确的方法来测试模型,或者这是mahout 0.7中的错误。如果这不是正确的方法,请建议一种解决方法。
发布于 2012-10-24 21:47:13
你能试试这个吗:
bin/mahout testnb -i ${WORK_DIR}/data2-vectors/tfidf-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/data2-testing $c(去掉"part-r-00000")
https://stackoverflow.com/questions/12909818
复制相似问题