Spark中的XGBoost模型->缺失值处理

问题描述 投票:1回答:1

[与python不同,缺失值由XGBoost算法在内部处理,在SPARK中构建XGBoost模型时,缺失值隐式转换为0.0(float ?!)。这个可以吗 ?实际值可能为0.0。我们如何确定这不会干扰模型预测能力?

scala apache-spark machine-learning xgboost
1个回答
0
投票

这里假设xgboost将缺失值估算为0,这是错误的。实际上,在缺失值的情况下,它会注意到在树生长时NA朝向更高的增益分割方向。

例如,如果拆分时未考虑缺失值,则将其确定为变量var1(范围[0,1])的值为0.5,则它会考虑var1缺失值<0.5和> 0.5来计算增益。对于任何分割方向,它都会获得更大的增益,它将缺失值归因于具有该分割方向。因此,缺失值现在的范围为[0,0.5]或[0.5,1],但没有分配给它的实际值(即估算值)。

有关此主题的更多详细信息,请参阅论文https://arxiv.org/pdf/1603.02754v3.pdf

© www.soinside.com 2019 - 2024. All rights reserved.