机器学习决策树为什么对缺失值不敏感,如何处理缺失值?

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习决策树为什么对缺失值不敏感,如何处理缺失值?相关的知识,希望对你有一定的参考价值。

决策树处理缺失要考虑以下三个问题:

1、当开始选择哪个属性来划分数据集时,样本在某几个属性上有缺失怎么处理:

(1)忽略缺失样本。
(2)填充缺失值
(3)计算信息增益率时根据缺失率的大小对信息增益率进行打折,例如计算属性A的信息增益率,若属性 A的缺失率为0.9,则将信息增益率乘以0.9作为最终的信息增益率。

2、一个属性已经被选择,那么在决定分割点时,有些样本在这个属性上有缺失怎么处理?

(1)忽略这些缺失的样本。
(2)填充缺失值,例如填充一个均值或者用其他方法将缺失值补全。 把缺失的样本,按照无缺失的样本被划分的子集样本个数的相对比率,分配到各个子集上去,至于那 些缺失样本分到子集1,哪些样本分配到子集2,这个没有一定准则,可以随机而动。
(3)把缺失的样本分配给所有的子集,也就是每个子集都有缺失的样本。
(4)单独将缺失的样本归为一个分支。

3、决策树模型构建好后,测试集上的某些属性是缺失的,这些属性该怎么处理?
(1)如果有单独的缺失值分支,依据此分支。
(2)把待分类的样本的属性A分配一个最常出现的值,然后进行分支预测。
(3)待分类的样本在到达属性A结点时就终止分类,然后根据此时A结点所覆盖的叶子节点类别状况为其 分配一个发生概率最高的类。

以上是关于机器学习决策树为什么对缺失值不敏感,如何处理缺失值?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习算法优劣势及适用场景总结

如何处理 Python 中应该缺失的缺失值(不应插入 NaN)?

机器学习算法之决策树

机器学习决策树(划分选择算法流程剪枝处理,连续值与缺失值处理)

机器学习_决策树Python代码详解

决策树学习小记