数据预处理作为机器学习中的关键一环,这里介绍其中的Missing Value缺失值处理

楔子
很多时候,样本集中的数据可能会存在部分特征缺失、不完整的现象。为此需要对缺失值进行处理。常见的处理策略有:删除、填充
Drop 删除
如果 某个样本缺失大量特征 或 某项特征很多样本都没有值,我们就可以通过删除相应的样本、某项特征列 来进行处理。具体地:Pandas中提供了dropna方法用于删除包含缺失值的数据,其会将NumPy的np.nan视作缺失值
1 | import pandas as pd |
输出如下
1 | ---------- Origin Data ---------- |
Impute 填充
如果样本的某项特征值缺失,可以使用数据集的整体特点来进行填充。典型的策略有:
- 均值填充:使用数据集该特征的均值来填充,适用于数值型数据
- 中位数填充:使用数据集该特征的中位数来填充,适用于数值型数据。相对于均值填充,其可以避免受到异常值的影响
- 众数填充:使用数据集该特征的众数来填充,适用于类别型数据
使用Sklearn的SimpleImputer进行填充时,其默认将np.nan视作为缺失值。故可先通过Pandas将数据集中的各种不同的缺失值统一替换为np.nan
1 | import pandas as pd |
输出如下
1 | ---------- Origin Data ---------- |
参考文献
- 机器学习 周志华著
- 机器学习公式详解 谢文睿、秦州著
- 图解机器学习和深度学习入门 山口达辉、松田洋之著