1 不进行处理
在数据源包含nan之类的值的时候也能进行建模:
- lightGBM(把缺失值看作一类,本质上也是真值转换,不推荐)
- Cart树(为了提升预测效果而填充,容易过拟合,不推荐)
一般还是要处理缺失值。
2 简单处理
- 真值转换:把年龄、学号等属性给自动填充为固定的值,例如将部分缺失年龄的数据填充为-1。此外,也可以通过从业务逻辑溯源的方法进行缺失值的找回。
- 暴力删除:直接删除带nan的数据(缺失比例较小)。
3 处理方法
3.1 统计量插补
- 均值、众数、中位数、特殊值(样本前/后的一个值)填补
- 分层插补:先对数据分层(聚类),再分层填补缺失值。效果通常比不分层更好
3.2 热平台插补
- 最近邻:与KNN类似,通过距离计算,用近邻样本的值替代缺失值
- 序贯:按某个特征排序后,找到缺失值前后10个内距离最近的值作为缺失值的替代
3.3 插值插补法
缺失的规模不大时:
- 拉格朗日插值
- 牛顿插值
进行多项式拟合插值。
3.4 拟合插补(模型填补)
KNN、决策树、随机森林等机器学习方法进行插补。使用其他数据作为数据集,缺失值作为标签列进行缺失值填补。
3.4 多重插补法
- miceforest方法(调库)
4 差值填补的选择依据
- 要对缺失值进行处理
- 根据业务逻辑进行缺失值还原
- 可以简单把缺失值标记为某一类(真值转换)
- 可以通过简单、模型插补方法进行缺失值填补