4.2 缺失值处理

当拿到一组样本用于训练模型时,突然发现提交到模型进行训练的时候,程序报错,提示某个特征的数据不得为空。如果训练样本足够大,则可以通过舍弃含有缺失值的样本,对剩下的样本进行训练,这也是一种缺失值处理的方法,读者可以自行使用此类方式对数据进行预处理。然而,如果采集到的样本比较小,无法简单地通过舍弃样本对数据进行清洗时,就需要对含有缺失值的样本进行插补操作,通过数据的已知部分推断缺失部分,或者人为地设定数据的缺失部分。

什么样的值是缺失值?缺失值不仅仅是某个维度上的数据为空、NaN或者Null,任何没有实际意义的数据字符或者认定为表示空的字符(串)都可以视作缺失值。

通常根据样本之间的关联关系,以及数据的行或者列,对其进行插补,其策略有均值插补、中位数插补及高频数插补。在Sklearn中的sklearn.impute库中,SimpleImputer方法用于处理缺失值。首先用一个简单的例子看其是如何实现缺失值处理的,具体实现如下:

其输出结果如下: