naivebayes Mahout 0.7

时间:2012-10-16 07:45:28

标签: mahout

我正在研究推文的情绪分析。 我正在使用mahout朴素贝叶斯分类器。我正在制作一个目录“数据”。在“数据”旁边我正在制作另外三个名为“正面”,“负面”,“不确定”的目录。然后我保留了151个文件(总计151Mb)在这些正面,负面和不确定的目录中。然后我将数据目录保存在hdfs..below中,这是我运行的命令集,用于生成模型和labelindex。

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 seqdirectory -i $ {WORK_DIR} / data2 -o $ {WORK_DIR} / data2-seq

bin / mahout seq2sparse -i $ {WORK_DIR} / data2-seq -o $ {WORK_DIR} / data2-vectors -lnorm -nv -wttfidf

使用下面给出的命令,使用从上一组数据创建的模型/ 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

任何人都可以告诉我为什么会这样。我使用正确的方法来测试模型,或者它是mahout 0.7中的一个错误。如果它不是正确的方法,请提出一条出路。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

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”)