Scikit-learn API:SimpleImputer类(原sklearn.preprocessing.Imputer类) 处理缺失值

scikit-learn提供了简单易用的方法进行缺失值的处理,使用SimpleImputer实例,我们可以指定用什么样的数值(例如中位数)填充某属性中的缺失值。

函数原型和参数说明

Scikit-learn API:SimpleImputer类(原sklearn.preprocessing.Imputer类) 处理缺失值_第1张图片

SimpleImputer类的属性和方法

Scikit-learn API:SimpleImputer类(原sklearn.preprocessing.Imputer类) 处理缺失值_第2张图片

应用举例

>>> import numpy as np
>>> from sklearn.impute import SimpleImputer

>>> imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
>>> imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]])  # 适配一下,获取每一列应该填充的值,分别为7, 3.5, 6
SimpleImputer(add_indicator=False, copy=True, fill_value=None,
              missing_values=nan, strategy='mean', verbose=0)

>>> print(imp_mean.statistics_)  # 使用statistics_属性查看填充每一列时使用的数值
[7.  3.5 6. ]

>>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]]
>>> print(imp_mean.transform(X))  # 使用前面fit出的值填充,也可以直接使用fit_transform,适配出来的就是自身列的均值
[[ 7.   2.   3. ]
 [ 4.   3.5  6. ]
 [10.   3.5  9. ]]



# 可以使用在稀疏矩阵上
>>> import scipy.sparse as sp
>>> X = sp.csc_matrix([[1, 2], [0, -1], [8, 4]])
>>> imp = SimpleImputer(missing_values=-1, strategy='mean')
>>> imp.fit(X)
SimpleImputer(missing_values=-1)

>>> X_test = sp.csc_matrix([[-1, 2], [6, -1], [7, 6]])
>>> print(imp.transform(X_test).toarray())
[[3. 2.]
 [6. 3.]
 [7. 6.]]

 

你可能感兴趣的:(机器学习,scikit-learn,API)