【问题标题】:How to deal with missing attribute values in C4.5 (J48) decision tree?如何处理 C4.5 (J48) 决策树中缺少的属性值?
【发布时间】:2012-11-05 17:13:10
【问题描述】:

使用 Weka 的 C4.5 (J48) 决策树处理缺失特征属性值的最佳方法是什么?在训练和分类过程中都会出现缺失值的问题。

  1. 如果训练实例中缺少值,我是否正确假设我放置了一个“?”该功能的价值?

  2. 假设我能够成功构建决策树,然后从 Weka 的树结构中用 C++ 或 Java 创建自己的树代码。在分类期间,如果我尝试对新实例进行分类,我应该为具有缺失值的特征赋予什么值?如果我有一个未知值的决策节点,我将如何下降树?

使用朴素贝叶斯会更好地处理缺失值吗?我只会为他们分配一个非常小的非零概率,对吗?

【问题讨论】:

    标签: machine-learning data-mining weka decision-tree classification


    【解决方案1】:

    来自华盛顿大学 Pedro Domingos 的 ML 课程:

    Pedro 建议使用以下三种方法来解决 A 的缺失值:

    • 在排序到节点n 的其他示例中分配A 的最常见值
    • 在具有相同目标值的其他示例中分配A 的最常见值
    • 将概率p_i分配给A的每个可能值v_i;将示例的分数 p_i 分配给树中的每个后代。

    现在可以在here 观看幻灯片和视频。

    【讨论】:

    • 很棒的信息。谢谢。我去看看视频。
    • 通过“排序到节点 n”,您只是指在其他样本中的节点 n,对吧?
    • 我不确定我是否理解最后一点。当前训练示例中的值可以是“X”或“Y”,但属性不能包含两个具有两个概率的值,对吧?那么这是什么意思呢?
    • 仍然是 X 或 Y。假设 X 的可能性为 0.9,Y 的可能性为 0.1(基于具有此属性的所有训练示例)。然后使用随机函数返回 [0,1) 中的浮点数。如果该值小于 0.9,则分配 X,否则分配 Y。这有意义吗?
    【解决方案2】:

    另一种方法是将缺失值保留为“?”,而不将其用于信息增益计算。在分类过程中,任何节点都不应该有未知值,因为您在信息增益步骤中忽略了它。对于分类,我相信您只需考虑未知的缺失值,并且不要在对该特定属性进行分类时将其删除。

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 2016-04-24
      • 2014-08-29
      • 2017-06-22
      • 2015-07-03
      • 2015-11-17
      • 2012-08-04
      • 2020-01-08
      • 2014-05-12
      相关资源
      最近更新 更多