【问题标题】:Experimenting with id3 algorithm on iris and soyabean dataset giving error in Weka在 Weka 中对 iris 和大豆数据集进行 id3 算法进行试验,给出错误
【发布时间】:2014-11-29 20:32:45
【问题描述】:

我正在尝试在Weka Experimenter 中测试 id3 算法在 iris 和 soyabean 数据集上。

但是id3算法在RUN的时候,报错如下:

weka.classifiers.trees.Id3: Cannot handle numeric attributes!

在谷歌搜索上述错误后,我发现了这个问题:Weka J48 Classifier: Cannot handle numeric class?

但我不确定如何使用这个公认的答案,因为我正在通过 Weka Experimenter GUI 进行实验!

【问题讨论】:

  • 绝对可以运行该命令将特征转换为二进制。然后你就可以加载到 weka 并运行 j48。

标签: algorithm machine-learning weka


【解决方案1】:

流程概述如下:

  • 打开您要转换的 Iris 文件(或任何数据文件)。
  • 选择您要应用于数据的过滤器(在本例中,选择 NumericToBinary)
  • 根据需要更改过滤器的设置
  • 单击“应用”按钮将更改应用到数据集。

  • 您应该会看到数据集发生了一些变化,如下图所示。
  • 单击“保存...”按钮并将数据保存到另一个文件。
  • 关闭资源管理器

  • 从 Weka 打开 Experimenter
  • 单击“新建”按钮,然后设置结果 ARFF 目标文件
  • 在“数据集”组下,单击“添加新...”,然后添加修改后的 ARFF 数据文件
  • 在“算法”组下,点击“添加新...”并选择您的算法

  • 在“运行”选项卡下,单击“开始”按钮。
  • 然后您应该会看到 0 个错误,如下所示:

请注意,此处使用的数据过滤器对于建模问题可能不是很有效(因为所有属性似乎都返回 true),因此其他过滤器可能更适合此问题。

希望对您有所帮助!

【讨论】:

  • 谢谢。它现在似乎可以正常工作。我用三种算法测试了数据集——JRip、id3 和 j48。所有三个都给出相同的 33.33 输出:i.imgur.com/rZevku9.png 你会建议什么其他过滤器是最好的?
  • 如我的第三张图片所示,NumericToBinary 使属性值在值恰好为零时为假,在这种情况下这不好,因为所有属性值都为零,这意味着您将始终得到精度低。我通常在 Weka 之外预处理我的数据,然后根据建模需要导入。我认为离散化可能会有所帮助,因为您可以确定您认为可能是最佳的每个属性的桶数,并根据模型的需要进行调整。
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2015-10-04
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2018-07-04
  • 2012-10-10
相关资源
最近更新 更多