xgboost如何处理缺失值

作者: 0过把火0 | 来源:发表于2018-01-04 18:01 被阅读1475次

    通常情况下,我们人为在处理缺失值的时候大多会选用中位数、均值或是二者的融合来对数值型特征进行填补,使用出现次数最多的类别来填补缺失的类别特征。

    很多的机器学习算法都无法提供缺失值的自动处理,都需要人为地去处理,但是xgboost模型却能够处理缺失值,也就是说模型允许缺失值存在。

    原是论文中关于缺失值的处理将其看与稀疏矩阵的处理看作一样。在寻找split point的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找split point的时间开销。在逻辑实现上,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,计算增益后选择增益大的方向进行分裂即可。可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树。

    原文的伪代码如下:

    相关文章

      网友评论

      • 小虾_d651:亲,可以把文章分享给我吗?
        小虾_d651:@0过把火0 大恩不言谢!!!
        0过把火0:@小虾_d651 https://arxiv.org/abs/1603.02754 打开下载论文即可

      本文标题:xgboost如何处理缺失值

      本文链接:https://www.haomeiwen.com/subject/mgernxtx.html