![机器学习从入门到入职:用sklearn与keras搭建人工智能模型](https://wfqqreader-1252317822.image.myqcloud.com/cover/350/31186350/b_31186350.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.2 缺失值处理
当拿到一组样本用于训练模型时,突然发现提交到模型进行训练的时候,程序报错,提示某个特征的数据不得为空。如果训练样本足够大,则可以通过舍弃含有缺失值的样本,对剩下的样本进行训练,这也是一种缺失值处理的方法,读者可以自行使用此类方式对数据进行预处理。然而,如果采集到的样本比较小,无法简单地通过舍弃样本对数据进行清洗时,就需要对含有缺失值的样本进行插补操作,通过数据的已知部分推断缺失部分,或者人为地设定数据的缺失部分。
什么样的值是缺失值?缺失值不仅仅是某个维度上的数据为空、NaN或者Null,任何没有实际意义的数据字符或者认定为表示空的字符(串)都可以视作缺失值。
通常根据样本之间的关联关系,以及数据的行或者列,对其进行插补,其策略有均值插补、中位数插补及高频数插补。在Sklearn中的sklearn.impute库中,SimpleImputer方法用于处理缺失值。首先用一个简单的例子看其是如何实现缺失值处理的,具体实现如下:
![](https://epubservercos.yuewen.com/04F02B/16896237504361606/epubprivate/OEBPS/Images/txt004_1.jpg?sign=1738860983-uV1RyG9q3i1LyjafZiXawMRzsN0fqidN-0-613d446b209a3271e45c4eb04d8e79ad)
其输出结果如下:
![](https://epubservercos.yuewen.com/04F02B/16896237504361606/epubprivate/OEBPS/Images/txt004_2.jpg?sign=1738860983-oJqYABroB54Na4ba4YdYC5O1dYzlwhLS-0-77102d123996393d50e60bb963eed72c)