可以分为以下 2 种情况
缺失值较多
-
直接舍弃该列特征,否则可能会带来较大的噪声,从而对结果造成不良影响。
缺失值较少
-
当缺失值较少(<10%)时,可以考虑对缺失值进行填充,以下是几种常用的填充策略:
-
用一个异常值填充(比如 0),将缺失值作为一个特征处理
data.fillna(0)
-
用均值|条件均值填充
如果数据是不平衡的,那么应该使用条件均值填充
所谓条件均值,指的是与缺失值所属标签相同的所有数据的均值
data.fillna(data.mean())
-
用相邻数据填充
# 用前一个数据填充 data.fillna(method='pad') # 用后一个数据填充 data.fillna(method='bfill')
-
插值
data.interpolate()
-
拟合
简单来说,就是将缺失值也作为一个预测问题来处理:将数据分为正常数据和缺失数据,对有值的数据采用随机森林等方法拟合,然后对有缺失值的数据进行预测,用预测的值来填充。