xgboost是如何处理缺失值的
2018-12-04 本文已影响0人
小歪与大白兔
缺失值的处理办法:
- 删除法:
- 简单删除法:此方法将存在缺失值的数据条目(对象,元组,记录)进行删除
- 权重法:当缺失值的类型为非完全随机缺失的时候,可以通过对完整的数据加权来减小偏差。把数据不完全的个案标记后,将完整的数据个案赋予不同的权重
2.填补法:
- 人工填写
- 特殊值填写
- 均值填写
- 出现次数最多的值填写等
xgboost是如何处理缺失值的呢?
- 在寻找split point的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找split point的时间开销。
- 在逻辑实现上,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,计算增益后选择增益大的方向进行分裂即可。
-
如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树。
image.png