使用 Weka 的 C4.5 (J48) 决策树处理缺失特征属性值的最佳方法是什么?在训练和分类过程中都会出现缺失值的问题。
如果训练实例中缺少值,我是否正确假设我放置了一个“?” 该功能的价值?
假设我能够成功构建决策树,然后根据 Weka 的树结构用 C++ 或 Java 创建自己的树代码。在分类期间,如果我试图对一个新实例进行分类,我应该为具有缺失值的特征赋予什么值?我如何将树下降到我有未知值的决策节点?
使用朴素贝叶斯会更好地处理缺失值吗?我只会为他们分配一个非常小的非零概率,对吗?
使用 Weka 的 C4.5 (J48) 决策树处理缺失特征属性值的最佳方法是什么?在训练和分类过程中都会出现缺失值的问题。
如果训练实例中缺少值,我是否正确假设我放置了一个“?” 该功能的价值?
假设我能够成功构建决策树,然后根据 Weka 的树结构用 C++ 或 Java 创建自己的树代码。在分类期间,如果我试图对一个新实例进行分类,我应该为具有缺失值的特征赋予什么值?我如何将树下降到我有未知值的决策节点?
使用朴素贝叶斯会更好地处理缺失值吗?我只会为他们分配一个非常小的非零概率,对吗?
来自华盛顿大学 Pedro Domingos 的 ML 课程:
以下是佩德罗针对 的缺失值提出的三种方法A
:
A
在排序到节点的其他示例中分配最常见的值n
A
在具有相同目标值的其他示例中分配最常见的值p_i
每个可能值分配概率;将示例的一部分分配给树中的每个后代。v_i
A
p_i
现在可以在此处查看幻灯片和视频。
另一种方法是将缺失值保留为“?”,而不将其用于信息增益计算。在分类过程中,任何节点都不应该有未知值,因为您在信息增益步骤中忽略了它。对于分类,我相信您只需考虑未知的缺失值,并且不要在对该特定属性进行分类期间将其删除。