1. 树模型对于缺失值的敏感度较低,大部分时候可以在数据有缺失时使用。
2. 涉及到距离度量(distance measurement)时,如计算两个点之间的距离,缺失数据就变得比较重要。因为涉及到“距离”这个概念,那么缺失值处理不当就会导致效果很差,如K近邻算法(KNN)和支持向量机(SVM)。
3. 线性模型的代价函数(loss function)往往涉及到距离(distance)的计算,计算预测值和真实值之间的差别,这容易导致对缺失值敏感。
4. 神经网络的鲁棒性强,对于缺失数据不是非常敏感,但一般没有那么多数据可供使用。
5. 贝叶斯模型对于缺失数据也比较稳定,数据量很小的时候首推贝叶斯模型。
6. 总结来看,对于有缺失值的数据在经过缺失值处理后:
(1) 数据量很小,用朴素贝叶斯
(2) 数据量适中或者较大,用树模型,优先 xgboost
(3) 数据量较大,也可以用神经网络
(4) 避免使用距离度量相关的模型,如KNN和SVM