xgboost是如何处理缺失值的

缺失值的处理办法:
  1. 删除法:
  • 简单删除法:此方法将存在缺失值的数据条目(对象,元组,记录)进行删除
  • 权重法:当缺失值的类型为非完全随机缺失的时候,可以通过对完整的数据加权来减小偏差。把数据不完全的个案标记后,将完整的数据个案赋予不同的权重

2.填补法:

  • 人工填写
  • 特殊值填写
  • 均值填写
  • 出现次数最多的值填写等
xgboost是如何处理缺失值的呢?
  • 在寻找split point的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找split point的时间开销。
  • 在逻辑实现上,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,计算增益后选择增益大的方向进行分裂即可。
  • 如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树。


    xgboost是如何处理缺失值的_第1张图片
    image.png

你可能感兴趣的:(xgboost是如何处理缺失值的)