使用 Apache Mahout 对数据进行分类
Posted
技术标签:
【中文标题】使用 Apache Mahout 对数据进行分类【英文标题】:Classify data using Apache Mahout 【发布时间】:2011-05-07 11:04:40 【问题描述】:我正在尝试解决一个简单的分类问题。
问题: 我有一组文本,我必须根据内容对其进行分类。
使用 Mahout 的解决方案: 我知道我必须将输入转换为序列文件才能生成模型。是的,我能够做到这一点。现在,如何对测试数据进行分类? 20News 示例仅测试正确性。但是,我想做实际的分类。 我不确定是否需要编写代码或使用一些现有的类来对测试集进行分类。?
【问题讨论】:
【参考方案1】:我不想插入我自己的工作,但我们在 Mahout in Action 中放置了有关分类的整个部分。理论、代码示例、案例研究实践,甚至整个服务器场实施。
您可以在http://www.manning.com/owen/获取预发布版本
【讨论】:
IMO,书中关于分类的部分有待改进。关于分类的部分冗长、不清楚,而且常常是不合逻辑的。可能会有更多的 java 编码示例和更少的 bash shell 示例。分类部分如果写得更像介绍章节会更好:显示分类文件的格式,如何读入它们,如何将它们加载到分类器中,训练完成后,如何使用分类器对新样本进行分类。 我希望 Mahout 有更多更好的文档。机器学习专家很难理解处理管道的结构和代码架构。甚至 javadocs 使用了不恰当的术语(setGramSize 应该是 setNGramSize)小的语义在理解概念和代码方面会产生巨大的差异。【参考方案2】:我也有类似的问题。
跑步
bin/mahout org.apache.mahout.classifier.Classify --path <PATH TO MODEL> --classify <PATH TO TEXT FILE TO BE CLASSIFIED> --encoding UTF-8 --analyzer org.apache.mahout.vectorizer.DefaultAnalyzer --defaultCat unknown --gramSize 1 --classifierType bayes --dataSource hdfs
将根据模型对文本文件进行分类。
这可能会让你更进一步,但我猜你和我一样想对一大堆文档进行分类,并且希望输出格式有用。
可能需要编写一些 java 程序才能做到这一点。有人有一个例子,看起来它会在https://bitbucket.org/jaganadhg/blog/src/tip/bck9/java/src/org/bc/kl/ClassifierDemo.java做我想做的事
【讨论】:
以上是关于使用 Apache Mahout 对数据进行分类的主要内容,如果未能解决你的问题,请参考以下文章
Apache Mahout 和 Apache Spark 的 MLlib 有啥区别?