题目标题

决策树的缺失值和数值型特征分别是怎么处理的?

难度:初级

机器学习
参考解析

数值型特征:

采用二分法对连续属性进行处理。给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这些值从小到大排序,记为${a^1,a^2,…,a^n}$。对连续属性a,我们可考察包含n-1个元素的候选划分点集合
缺失值:

  1. 在选择分裂属性的时候,训练样本存在缺失值,如何处理?
    假如你使用ID3算法,那么选择分类属性时,就要计算所有属性的熵增(信息增益,Gain)。假设10个样本,属性是a,b,c。在计算a属性熵时发现,第10个样本的a属性缺失,那么就把第10个样本去掉,前9个样本组成新的样本集,在新样本集上按正常方法计算a属性的熵增。然后结果乘0.9(新样本占raw样本的比例),就是a属性最终的熵。
  2. 分类属性选择完成,对训练样本分类,发现属性缺失怎么办?
    比如该节点是根据a属性划分,但是待分类样本a属性缺失,怎么办呢?假设a属性离散,有1,2两种取值,那么就把该样本分配到两个子节点中去,但是权重由1变为相应离散值个数占样本的比例。然后计算错误率的时候,注意,不是每个样本都是权重为1,存在分数。
  3. 训练完成,给测试集样本分类,有缺失值怎么办?
    这时候,就不能按比例分配了,因为你必须给该样本一个确定的label,而不是薛定谔的label。这时候根据投票来确定,或者填充缺失值。