首页 > 其他 > 详细

mahout测试朴素贝叶斯分类例子

时间:2016-01-31 13:35:33      阅读:261      评论:0      收藏:0      [点我收藏+]

对于这个测试建议大家先理解原理,这里我画了如下的示意图


技术分享



接下来就按照如下的细节来输入指令测试:


首先前提是Hadoop安装并启动,mahout已经安装了。


<strong><span style="font-size:18px;">第一,下载数据集20news-bydate.tar.gz,在/usr/hadoop/mahout/下建立data文件夹
(mkdir /usr/hadoop/mahout/data/)

将下载的数据集解压tar 20news-bydate.tar.gz,之后放到data文件夹下。


第二,产生input数据集(输入数据集),即对训练数据集进行预处理,数据准备阶段,将各类中的数据进行分词处理,

去掉标点及副词等,同时将各类中的文件读入到一个大文件中,使得每类最后只有一个文件包含起初所有的文件,并且创建input,output目录。

mahout下处理的文件必须是SequenceFile格式的,还需要把txtfile转换成sequenceFile。等处理完看结果时就明白了,

命令为
 mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups  
 -p /usr/hadoop/mahout/data/20news-bydate-train 
 -o /usr/hadoop/mahout/input/bayes-train-input  
 -a org.apache.mahout.vectorizer.DefaultAnalyzer  
 -c UTF-8


完毕后将input下的bayes-train-input放到hadoop的分布式文件系统上的 20news-input,

输入命令hadoop dfs -put /usr/hadoop/mahout/input/bayes-train-input 20news-input



第三,用处理好的训练数据集进行训练得出分类模型即中间结果,模型保存在分布式文件系统上,

在mahout的目录下输入命令
mahout trainclassifier -i 20news-input -o newsmodel -type bayes -ng 3 -source hdfs

当然可以查看newsmodel里的内容时,先查看其里面都有什么,

命令:hadoop fs -lsr /user/hadoop/newsmodel

将其导入到本地txt格式,进行查看,

例如命令:mahout seqdumper -s /usr/hadoop/newsmodel/trainer-tfIdf//trainer-tfIdf/part-00000 -o /usr/hadoop/output/part-1

然后使用vim /usr/hadoop/mahout/output/part-1

最后,用模型进行测试,

输入命令
mahout testclassifier \ 
       
-m newsmodel \ 
       
-d 20news-input \ 
       
-type bayes \ 
       
-ng 3 \ 
       
-source hdfs \ 
       
-method mapreduce

【注】这里说明下自己理解的参数ng的设置,ng就是作为属性的单词个数,默认为1,

就是单个单词作为属性,这里设置为3,但是训练和测试时此参数的值要设置一样。</span></strong>



mahout测试朴素贝叶斯分类例子

原文:http://blog.csdn.net/u012965373/article/details/50614150

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!