机器学习决策树为什么对缺失值不敏感,如何处理缺失值?
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)?