参考链接 :https://www.zhihu.com/question/58230411
1. Xgboost
XGBoost处理缺失值,是将所有有缺失值的数据捆绑在一起,比较将这些数据都放入左子树和都放入右子树时的损失大小。最终将数据分到损失小的那一列。
2. 决策树
三个问题:
1. 在选择分裂属性的时候,训练样本存在缺失值,如何处理?
2. 在建树过程中,给定划分属性,若样本在该属性上的值是缺失的,那么该如何对这个样本进行划分?
3. 训练完成,给测试集样本分类,有缺失值怎么办?
Ans:
1、2: 前两个问题,参考文献:https://blog.csdn.net/u012328159/article/details/79413610
3. 针对第三个问题,通常选择样本数最多的特征值方向。
3. 总结
1. 树模型对缺失值的敏感性较低,大部分基于树的算法可在数据有缺失时使用
2. 涉及到距离度量的算法对缺失值的敏感度较高,处理不当时,模型效果较差,如KNN、SVM等
3. 线性模型的代价函数往往涉及到距离的计算,将容易导致模型对异常值敏感。
4. 数据量较大时,可以考虑使用神经网络,神经网络对缺失值的敏感度交差。
5. 数据量较小时,可以使用贝叶斯模型