机器学习从入门到入职--用sklearn与Keras搭建人工智能模型
第四章4.1根据样本之间关联关系,及数据的行和列,用SimpleImputer方法进行缺失值处理,策略有均值插补、中位数插补和高频数插补。例子如下:
#引用相应的库,numpy用于生成缺失值,sklearn.impute库中的simpleimputer方法用预处理缺失值
import Numpy as np
from sklearn.impute import SimpleImputer
#初始化缺失值处理器,指定缺失值参数missing_values,默认np.nan
#以及缺失值补全策略参数strategy,采用均值补全
#另外还有中位数(median)、常数(constant)、最高频数(most_frequent)
imp_mean=SimpleImputer(missing_values=np.nan,strategy='mean')
imp_median=SimpleImputer(missing_values=np.nan,strategy='median')
imp_constant=SimpleImputer(missing_values=np.nan,strategy='constant')
imp_most_frequent=SimpleImputer(missing_values=np.nan,strategy='most_frequent')
X=[[13,22],[5,3],[7,np.nan],[np.nan,5],[3,7]]
#执行缺失值处理的步骤,在fit原始数据之后对其进行转换
imp_mean.fit(X)
imp_median.fit(X)
imp_constant.fit(X)
imp_most_frequent.fit(X)
print(u"均值处理结果如下")
print(imp_mean.transform(X))
print(u"中位数处理结果如下")
print(imp_median.transform(X))
print(u"最高频处理结果如下")
print(imp_most_frequent.transform(X))
输出如下
均值处理结果如下:
[[13. 22.][5. 3.][7. 9.25][7. 5.][3. 5.]]
中位数处理结果如下:
[[13. 22.][5. 3.][7. 6.][6. 5.][3. 7.]]
常数处理结果如下:
[[13. 22.][5. 3.][7. 0.][0. 5.][3. 7.]]
最高频处理结果如下:
[[13. 22.][5. 3.][7. 3.][3. 5.][3. 7.]]