为什么ID3算法不能用于Weka中的UCI Mushroom数据集?

时间:2018-04-27 16:05:10

标签: machine-learning classification weka decision-tree

我似乎无法将ID3分类算法应用于Mushroom.arff数据集。此数据集仅包含名义属性。我想我需要对它进行预处理以使其正常工作,但我不知道如何工作。我该怎么办?

this image shows i am unable to apply id3 to mushroom.arff

1 个答案:

答案 0 :(得分:3)

ID3算法是一种未修改的决策树生成算法,具有以下properties

  1. 它只能处理名义属性。
  2. 无法处理缺失值。
  3. 空叶可能会导致未分类的实例。
  4. Mushroom dataset由22个名义属性组成,并且满足第一个条件,但是经过检查,您会发现属性 &#39; stalk-root&#39; < / strong>有2480(31%)个缺失值。这是在您尝试分类时默认情况下在Weka中无法选择的原因。

    为了解决这个问题,您可以继续使用这两种解决方案。

    1. 您可以删除该属性。

      • 打开.arff文件,在“属性”选项卡中选择stalk-root属性,然后单击“删除”。
        1. 您现在可以看到ID3可用了。我的F得分为1.0。
    2. Solution Image

      1. 您可以使用技巧来处理缺失值。

        • 如果您不想丢失信息(在本例中为“stalk-root”属性),您可以继续执行这些techniques
          1. 使用属性的集中趋势度量(例如均值,中位数)来替换空值。
          2. 对属于与给定元组相同的类的所有样本使用属性均值或中位数。
          3. 使用最可能的值,使用贝叶斯形式使用基于推理的工具填充缺失值。