决策树--缺失值如何处理

参考博客
参考的博客中介绍得通俗易懂,大家可以看看。

决策树如何处理缺失值?也就是面对两个问题:
1、如果样本某个属性有缺失值,那么怎么计算使用这个属性划分结点时的信息增益呢?
2、在第一步的基础上,即使信息增益计算出来了,那么由于样本这一属性值缺失了,应该将这一样本划分到哪个子结点呢?

我们分别来看一下训练集、测试集上怎么处理缺失值。
训练集
对于问题1,在计算某一个属性的信息增益时,如果有的样本在这个属性上有缺失值,那么我们先计算在这个属性上没有缺失值的样本占此时总样本的比值,使用此属性上无缺失的样本如常计算信息增益,只是在最后要将得到的信息增益乘以我们先前计算的比值,这样就得到最终的信息增益了。
对于问题2,如果一个样本的某属性值缺失了,那么在使用此属性划分时,这一样本到底该划分到哪个子结点呢?决策树的经典方法是将此样本划分到所有的子结点中,只是会改变这一样本的权重,权重是按照子结点中样本数目与父结点中样本总数目地比值确定地。直观地理解,就是样本以一定地概率划分到子结点中。在决策树中,样本地权重都为1,但如果样本权重改变之后,在后续划分结点过程中,样本地权重就变成了改变后地权重。
测试集
因为对测试集进行预测时,树已经构建成功了,那么只涉及第2个问题。该将此样本划分到属性地哪个分支上?
比较常用的方法:对每个分支都探测一下,看看属于哪个类别的概率最大。(概率可以按照划分到此属性时某个类别的样本占总样本的比例确定)

你可能感兴趣的:(机器学习,决策树,机器学习)