我試圖訓練Mahout的樸素貝葉斯分類器。使用Mahout的樸素貝葉斯分類的感傷分析
首先,我不太清楚的是我的訓練數據應該如何。我的數據集包含一個意見,如果是正面的或負面的(1表示正面,-1表示負面)。根據我在Mahout in Action書中關於分類的章節所理解的,我已經設置了像這樣的訓練數據:
1 'Content of positive opinion'
-1 'Content of negative opinion'
我使用seqdirectory把這個數據轉換成一個序列文件,我訓練分類用這個命令:
$MAHOUT_HOME/bin/mahout trainnb -i seq_data/chunk-0 -o bmodel -ow
它輸出這樣的錯誤:
Exception in thread "main" java.io.FileNotFoundException: File temp/labelIndex does not exist.
查看trainnb接受的選項,我看到了--labelIndex選項。我不確定這是什麼,我可以對此做一些澄清。
然後我跑的命令,像這樣(其中LINDEX是我創建的文件):
$MAHOUT_HOME/bin/mahout trainnb -i seq_data/chunk-0 -o bmodel -ow -li lindex
它輸出這樣的錯誤:
java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.mahout.math.VectorWritable
at org.apache.mahout.classifier.naivebayes.training.IndexInstancesMapper.map(IndexInstancesMapper.java:29)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
我想知道我是什麼如果我的方法不正確,在這裏做錯了。我應該如何構造訓練數據並運行命令?