【问题标题】:What are the steps needed to use Mahout Native Bayes Classifier Algorithm?使用 Mahout 朴素贝叶斯分类器算法需要哪些步骤?
【发布时间】:2012-08-04 05:09:56
【问题描述】:

我正在尝试使用本机贝叶斯分类器来检测欺诈交易。我在 Excel 表中有大约 5000 个样本数据,这是我将用于训练分类器的数据,我有大约 1000 个测试数据,我将在其上应用测试分类器。

我的问题是,我不知道如何训练分类器。在将训练数据传递给训练分类器之前,我是否需要将其转换为某种特定格式。训练分类器如何知道哪些是我的目标值,哪些是它的特征。

有人可以帮帮我吗?

【问题讨论】:

  • 我知道这是很老的帖子,但是,你能解决这个问题吗?如果是的话,你能分享一下你是如何管理它的吗?谢谢

标签: classification mahout fraud-prevention


【解决方案1】:

为了测试您的数据,您需要确保您的训练集具有一些标签,或者已根据您在数据收集集中使用的某些功能划分为多个块。我不确定您是如何组织数据的,但您需要将数据集拆分为类似特征的块。

根据条件创建拆分后,请检查输入数据的创建。您可以使用以下方式验证文件:

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 Bayes 分类器期望输入字段是词干的,因此您会在测试数据中看到这一点。 extractTraining 数据命令的 --tv 参数导致每个文档的词条中的词干词条 要使用的向量。

ExtractTrainingData 类完成运行后,它将输出在每个类别中找到的文档计数。

【讨论】:

  • 您能否举例说明如何在训练数据上创建标签或如何将其分成块以便与 mahout 训练分类器一起使用?假设我的训练数据是:yes 5 4 20 yes 2 4 8 yes 1 7 7 no 3 8 23 no 7 8 90 现在我的训练数据应该是什么样子才能与 mahout 分类器一起使用?
  • 您已使用脚本/程序名称 tt 将输入转换为所需的格式。这是你写的程序吗?如果有,能否附上来源?
  • @karthik我知道这是一篇旧帖子。但是你有没有想办法设置 TT_HOME?我需要在我的 bash_profile 中设置它吗?
猜你喜欢
  • 2011-12-28
  • 2012-04-28
  • 2014-09-18
  • 2014-07-01
  • 2012-01-24
  • 2017-01-10
  • 2015-03-06
  • 2013-12-02
相关资源
最近更新 更多