`

关于利用hadoop和mahout进行Twenty Newsgroups 分类例子的自我理解

 
阅读更多

The 20 Newsgroups数据集合收集了大约20,000 个新闻群组的文档,它们被划分成为大约20个新闻组。在机器学习领域,这个数据集合被广泛的应用与分类和聚类测试数据集。下面是介绍如何利用这个数据集合来进行分类。

 (本文是对https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups的翻译)

准备工作:

(1)首先确保安装了hadoop和mahout,关于hadoop和mahout的安装与配置,可以参考hadoop.apache.org 和mahout.apache.org中的guide部分,可以让你快速入门。

(2)确保你安装了maven,这个是为后边的编译做准备。

(3)环境变量 设定

      export HADOOP_HOME hadoop的trunk目录

      export MAHOUT_HOME hadoop的trunk目录

 

 

 mahout中例子程序的运行过程详细说明

 1 首先启动hadoop  start-all.sh

 2 (此步骤仅仅是在下载的是mahout的源文件是需要)进入mahout的源trunk目录,运行 mvn install,对mahout进行编译并创建一个mahout job。

 3运行mahout中自带的20 newsgroup 例子。

  ./examples/bin/classify-20newsgroups.sh
 这个shell脚本将为你完成以下工作:下载20-new-bydat.tar.gz数据集合文件;抽取数据集合;为训练分类器生成符合要求的输入数据集合;生成测试分类的输入数据集合;运用训练数据集合训练分类器,生成分类模型;运用测试数据集合测试分类器。

 

最终输出的内容格式如下:

输出的是一个混合矩阵:

 

=======================================================
Confusion Matrix
-------------------------------------------------------
a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   <--Classified as
381 0   0   0   0   9   1   0   0   0   1   0   0   2   0   1   0   0   3   0   0    |  398  a     = rec.motorcycles
1   284 0   0   0   0   1   0   6   3   11  0   66  3   0   1   6   0   4   9   0    |  395  b     = comp.windows.x
2   0   339 2   0   3   5   1   0   0   0   0   1   1   12  1   7   0   2   0   0    |  376  c     = talk.politics.mideast
4   0   1   327 0   2   2   0   0   2   1   1   0   5   1   4   12  0   2   0   0    |  364  d     = talk.politics.guns
7   0   4   32  27  7   7   2   0   12  0   0   6   0   100 9   7   31  0   0   0    |  251  e     = talk.religion.misc
10  0   0   0   0   359 2   2   0   1   3   0   1   6   0   1   0   0   11  0   0    |  396  f     = rec.autos
0   0   0   0   0   1   383 9   1   0   0   0   0   0   0   0   0   0   3   0   0    |  397  g     = rec.sport.baseball
1   0   0   0   0   0   9   382 0   0   0   0   1   1   1   0   2   0   2   0   0    |  399  h     = rec.sport.hockey
2   0   0   0   0   4   3   0   330 4   4   0   5   12  0   0   2   0   12  7   0    |  385  i     = comp.sys.mac.hardware
0   3   0   0   0   0   1   0   0   368 0   0   10  4   1   3   2   0   2   0   0    |  394  j     = sci.space
0   0   0   0   0   3   1   0   27  2   291 0   11  25  0   0   1   0   13  18  0    |  392  k     = comp.sys.ibm.pc.hardware
8   0   1   109 0   6   11  4   1   18  0   98  1   3   11  10  27  1   1   0   0    |  310  l     = talk.politics.misc
0   11  0   0   0   3   6   0   10  6   11  0   299 13  0   2   13  0   7   8   0    |  389  m     = comp.graphics
6   0   1   0   0   4   2   0   5   2   12  0   8   321 0   4   14  0   8   6   0    |  393  n     = sci.electronics
2   0   0   0   0   0   4   1   0   3   1   0   3   1   372 6   0   2   1   2   0    |  398  o     = soc.religion.christian
4   0   0   1   0   2   3   3   0   4   2   0   7   12  6   342 1   0   9   0   0    |  396  p     = sci.med
0   1   0   1   0   1   4   0   3   0   1   0   8   4   0   2   369 0   1   1   0    |  396  q     = sci.crypt
10  0   4   10  1   5   6   2   2   6   2   0   2   1   86  15  14  152 0   1   0    |  319  r     = alt.atheism
4   0   0   0   0   9   1   1   8   1   12  0   3   6   0   2   0   0   341 2   0    |  390  s     = misc.forsale
8   5   0   0   0   1   6   0   8   5   50  0   40  2   1   0   9   0   3   256 0    |  394  t     = comp.os.ms-windows.misc
0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0    |  0    u     = unknown

  

 

 这个混合矩阵的意思说明:

a~u分别表示了一类。

第一行的数据

381 0   0   0   0   9   1   0   0   0   1   0   0   2   0   1   0   0   3   0   0    |  398  a     = rec.motorcycles
意思为rec.motorcycles 本来是 属于 a,有381 篇文档被划为了a 类,这个是正确的数据,其它的分别表示划到 b~u类中的数目。我们可以看到其正确率为  381/398=0.95728643216080402010050251256281 ,可见其正确率还是很高的了。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics