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 ,可见其正确率还是很高的了。
分享到:
相关推荐
#资源达人分享计划#
这里是我个人的bug,没有被解决
Hadoop-Mahout 使用 Mahout 在 Hadoop 上进行推荐、集群和分类
基于Hadoop与Mahout云数据挖掘推荐研究.pdf
#资源达人分享计划#
最新的HADOOP2.4.1版本不支持MAHOUT 0.9,本MAHOUT 0.9是经过修改官方MAHOUT 0.9源代码后的源码包,可直接导入ECLIPS中编译、安装,也可通过命令行进行。
推荐搭配与Maven + hadoop和mahout一起推荐您可以从《行动中的Mahout》一书中了解更多信息。
mahout0.9的源码,支持hadoop2,需要自行使用mvn编译。mvn编译使用命令: mvn clean install -Dhadoop2 -Dhadoop.2.version=2.2.0 -DskipTests
Hadoop,Hbase,mahout三者兼容版本的API文档,这三个API版本对应的Hadoop组件相互兼容,很方便的
mahout0.9仅支持hadoop1.x,编译好的这个包支持hadoop2.2.0.由于上传文件50M的限制,采用分卷压缩的形式,包括三个包:mahout-mahout-distribution-0.9.zip,distribution-0.9.z01,mahout-distribution-0.9.z02,...
9.Hadoop入门进阶课程_第9周_Mahout介绍、安装与应用案例.pdf
mahout0.9 的jar包,支持hadoop2(此为第一部分)
mahout0.9 的jar包,支持hadoop2,此为第二部分jar包。具体调用方式参考lz相关博客
Hadoop数据挖掘工具Mahout.ppt
利用Hadoop云计算平台进行海量数据聚类分析.pdf
eclipse hadoop例子源代码 eclipse hadoop例子源代码
理解大数据企业级hadoop和流数据分析
对哈姆雷特进行词频统计,利用大数据的hadoop框架进行计算,毫秒级的体验
mahout0.9仅支持hadoop1.x,编译好的这个包支持hadoop2.2.0.由于上传文件50M的限制,采用分卷压缩的形式,包括三个包:mahout-mahout-distribution-0.9.zip,distribution-0.9.z01,mahout-distribution-0.9.z02,...
利用ansible 自动 安装Hadoop 集群