📅  最后修改于: 2020-11-30 05:26:44             🧑  作者: Mango
分类是一种机器学习技术,它使用已知数据来确定应如何将新数据分类为一组现有类别。例如,
iTunes应用程序使用分类来准备播放列表。
邮件服务提供商,例如Yahoo!和Gmail使用此技术来确定是否应将新邮件归类为垃圾邮件。分类算法通过分析将某些邮件标记为垃圾邮件的用户习惯来进行自我训练。基于此,分类器决定将来的邮件应放置在您的收件箱中还是垃圾邮件文件夹中。
在对给定数据集进行分类时,分类器系统执行以下操作:
信用卡欺诈检测-分类机制用于预测信用卡欺诈。使用先前欺诈的历史信息,分类器可以预测哪些未来交易可能变成欺诈。
垃圾邮件-根据以前的垃圾邮件的特征,分类器确定是否将新遇到的电子邮件发送到垃圾邮件文件夹。
Mahout使用朴素贝叶斯分类器算法。它使用两种实现:
朴素贝叶斯是一种构造分类器的简单技术。它不是训练此类分类器的单一算法,而是一系列算法。贝叶斯分类器构造模型以对问题实例进行分类。这些分类是使用可用数据进行的。
朴素贝叶斯的一个优点是只需要少量训练数据即可估计分类所需的参数。
对于某些类型的概率模型,可以在有监督的学习环境中非常有效地训练朴素贝叶斯分类器。
尽管假设过分简单,但朴素的贝叶斯分类器在许多复杂的现实情况下都表现良好。
要实现分类,应遵循以下步骤:
生成或下载要分类的数据。例如,您可以从以下链接获得20个新闻组示例数据: http : //people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz
创建用于存储输入数据的目录。下载示例,如下所示。
$ mkdir classification_example
$ cd classification_example
$tar xzvf 20news-bydate.tar.gz
wget http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz
使用seqdirectory实用程序从示例创建序列文件。生成序列的语法如下:
mahout seqdirectory -i -o
使用seq2parse实用程序从序列文件创建矢量文件。 seq2parse实用程序的选项如下:
$MAHOUT_HOME/bin/mahout seq2sparse
--analyzerName (-a) analyzerName The class name of the analyzer
--chunkSize (-chunk) chunkSize The chunkSize in MegaBytes.
--output (-o) output The directory pathname for o/p
--input (-i) input Path to job input directory.
使用trainnb实用工具训练生成的向量。下面列出了使用trainnb实用程序的选项:
mahout trainnb
-i ${PATH_TO_TFIDF_VECTORS}
-el
-o ${PATH_TO_MODEL}/model
-li ${PATH_TO_MODEL}/labelindex
-ow
-c
使用testnb实用工具测试向量。下面列出了使用testnb实用程序的选项:
mahout testnb
-i ${PATH_TO_TFIDF_TEST_VECTORS}
-m ${PATH_TO_MODEL}/model
-l ${PATH_TO_MODEL}/labelindex
-ow
-o ${PATH_TO_OUTPUT}
-c
-seq