为了测试您的数据,您需要确保您的训练集具有一些标签或已根据您在数据收集集中使用的某些功能划分为块。我不确定您是如何组织数据的,但是您需要将数据集分成具有相似功能的块。
根据您的标准创建拆分后,请检查输入数据的创建。您可以使用以下方法验证文件:
hadoop fs -ls filename
使用以下方法训练您的分类器:
$MAHOUT_HOME/bin/mahout trainclassifier -i input_file -o output_model
使用以下方法测试分类器:
$MAHOUT_HOME/bin/mahout testclassifier -m output_model -d input_file
注意:请注意,在数据收集过程中,您需要确保为某些数据值(如果存在)分配权重。此外,还必须进行数据清理,以标准化实验设置或数据收集期间的误差。您可以对数据集使用任何乘性散射校正技术来校正它。
首先,有一个名为training-categories.txt
,其中包含分类器的类别。您可以使用简单的文本编辑器来执行此操作。
现在我们有了感兴趣的类别列表,运行ExtractTrainingData
使用类别列表的类。
$TT_HOME/bin/tt extractTrainingData \
--dir ./index \
--categories ./training-categories.txt \
--output ./category-bayes-data \
--category-fields categoryFacet,source \
--text-fields title,description \
--tv
此命令将读取文档并在类别和源字段中搜索匹配的类别。当其中列出的类别之一training-categories.txt
在这些文档之一中找到术语,将从存储在标题和描述字段中的术语向量中提取术语。这些条款将被写入一个文件中category-bayes-data
目录。每个类别都有一个文件。每个都是纯文本文件,可以使用任何文本编辑器或显示实用程序查看。
类别名称显示在第一列中,而文档中出现的每个术语则包含在第二列中。 Mahout 贝叶斯分类器期望输入字段被词干化,因此您将在测试数据中看到这一点。这--tv
论证extractTraining
data 命令会从每个文档的术语中提取词干术语
要使用的向量。
当。。。的时候ExtractTrainingData
类已完成其运行,它将输出每个类别中找到的文档计数。