添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

SimpleImputer参数详解


class sklearn.impute.SimpleImputer(*, missing_values=nan, strategy='mean', fill_value=None, verbose=0, copy=True, add_indicator=False)


参数含义

  • missing_values int , float , str , (默认) np.nan 或是 None , 即缺失值是什么。
  • strategy :空值填充的策略,共四种选择(默认) mean median most_frequent constant mean 表示该列的缺失值由该列的均值填充。 median 为中位数, most_frequent 为众数。 constant 表示将空值填充为自定义的值,但这个自定义的值要通过 fill_value 来定义。
  • fill_value str 数值 ,默认为 Zone 。当 strategy == "constant" 时, fill_value 被用来替换所有出现的缺失值( missing_values )。 fill_value Zone ,当处理的是数值数据时,缺失值( missing_values )会替换为 0 ,对于字符串或对象数据类型则替换为 "missing_value" 这一字符串。
  • verbose int ,(默认) 0 ,控制 imputer 的冗长。
  • copy boolean ,(默认) True ,表示对数据的副本进行处理, False 对数据原地修改。
  • add_indicator boolean ,(默认) False True 则会在数据后面加入 n 列由 0 1 构成的同样大小的数据, 0 表示所在位置非缺失值, 1 表示所在位置为缺失值。


常用方法


fit(X)

返回值为 SimpleImputer() 类,通过 fit(X) 方法可以计算X矩阵的相关值的大小,以便填充其他缺失数据矩阵时进行使用。


transform(X)

填补缺失值,一般使用该方法前要先用 fit() 方法对矩阵进行处理。

from sklearn.impute import SimpleImputer
import numpy as np
X = np.array([[1, 2, 3],
             [4, 5, 6],
             [7, 8, 9]])
X1 = np.array([[1, 2, np.nan],
               [4, np.nan, 6],
               [np.nan, 8, 9]])





    
imp = SimpleImputer(missing_values=np.nan, strategy='mean')
imp.fit(X)
print(imp.transform(X1))
# 运行结果
[[1. 2. 6.]
 [4. 5. 6.]
 [4. 8. 9.]]
复制代码

由于 fit(X) strategy='mean' ,所以填补值为X矩阵各列的均值。


fit_transform(X)

相当于 fit() + transform() ,一般使用的较多。

X1 = np.array([[1, 2, np.nan],
               [4, np.nan, 6],
               [np.nan, 8, 9]])
imp = SimpleImputer(missing_values=np.nan, strategy='mean')
print(imp.fit_transform(X1))
# 运行结果
[[1.  2.  7.5]
 [4.  5.  6. ]
 [2.5 8.  9. ]]
复制代码


get_params()

获取 SimpleImputer 参数信息。

imp = SimpleImputer(missing_values=np.nan, strategy='mean')
print(imp.get_params())
# 运行结果
{'add_indicator': False, 'copy': True, 'fill_value': None, 
'missing_values': nan, 'strategy': 'mean', 'verbose': 0}
复制代码


inverse_transform(X)

将数据转换回原始的表示形式。反转对数组执行的转换操作。该操作只能在以 add_indicator=True 实例化 simpleImputer 后执行 注意 :反变换只能在具有缺失值的二进制指示符的特征中进行反变换。如果一个特征在拟合时没有缺失值,那么该特征就没有二进制指标,变换时的赋值就不会被反向。简单说就是没有替换缺失值,就不存在还原。

X1 = np.array([[1, 2, np.nan],
               [4, np.nan, 6],
               [np.nan, 8, 9]])
imp = SimpleImputer(missing_values=np.nan, strategy='mean', add_indicator=True)
X1 = imp.fit_transform(X1)
print(X1)
print(imp.inverse_transform(X1))
# 运行结果
[[1.  2.  7.5 0.  0.  1. ]
 [4.  5.  6.  0.  1.  0. ]
 [2.5 8.  9.  1.  0.  0. ]]
[[ 1.  2. nan]
 [ 4. nan  6.]
 [nan  8.  9.]]
复制代码


自定义值填补


fill_value 自定义。

X = np.array([[1, 2, 3],
             [4, 5, 6],
             [7, 8, 9]])
imp = SimpleImputer(missing_values=1, strategy='constant', fill_value=666)
print(imp.fit_transform(X))
# 运行结果
[[666 2 3]
 [4 5 6]
 [7 8 9]]
复制代码


fill_value 为默认值 Zone

X = np.array([[1, 2, 3],
             [4, 5, 6],
             [7, 8, 9]])
imp = SimpleImputer(missing_values=1, strategy='constant', fill_value=None)
print(imp.fit_transform(X))
# 运行结果
[[0 2 3]
 [4 5 6]
 [7 8 9]]



超详细的 R 语言插补缺失值教程来啦~
mice包帮助我们用可信的数据值来填补缺失值,这些可信的数据值是根据原始数据分布特征得到的。该包为多元缺失数据创建多个输入(替换值),其中每个不完全变量由一个单独的模型输入。MICE 算法支持输入的数据类型有:连续的、二值的、无序分类和有序分类数据。