使用Weka的C4.5(J48)决策树处理缺失的要素属性值的最佳方法是什么?在训练和分类过程中都会出现缺失值的问题。
如果培训实例中缺少值,我是否正确假设我放置了'?'功能的价值?
假设我能够成功构建决策树,然后从Weka的树结构中用C ++或Java创建自己的树代码。在分类时,如果我尝试对新实例进行分类,我会为具有缺失值的功能赋予什么价值?如何将树下降到我具有未知值的决策节点?
使用Naive Bayes会更好地处理缺失值吗?我只想为它们分配一个非常小的非零概率,对吧?
答案 0 :(得分:8)
佩德罗多明戈斯在华盛顿大学的ML课程:
以下是佩德罗建议的A
缺失值的三种方法:
A
值分配给排序到节点n
A
的最常见值p_i
分配给v_i
的每个可能值A
;将示例的小数p_i
分配给树中的每个后代。现在可以在here查看幻灯片和视频。
答案 1 :(得分:2)
另一种方法是将缺失值保留为“?”,而不是将其用于信息增益计算。在分类期间,任何节点都不应具有未知值,因为您在信息获取步骤中忽略了该节点。对于分类,我认为您只是将缺失值视为未知,并且在对该特定属性进行分类时不要删除它。