SimpleImputer#
- class sklearn.impute.SimpleImputer(*, missing_values=nan, strategy='mean', fill_value=None, copy=True, add_indicator=False, keep_empty_features=False)#
单变量插补器,用于使用简单策略完成缺失值。
使用描述性统计(例如均值、中位数或最频繁值)沿每列替换缺失值,或使用常量值。
更多信息请参阅 用户指南 。
Added in version 0.20:
SimpleImputer
取代了之前的sklearn.preprocessing.Imputer
估计器,该估计器现已移除。- Parameters:
- missing_valuesint, float, str, np.nan, None 或 pandas.NA, default=np.nan
缺失值的占位符。所有
missing_values
的出现将被插补。对于带有缺失值的 pandas 数据框的 nullable 整数类型,missing_values
可以设置为np.nan
或pd.NA
。- strategystr 或 Callable, default=’mean’
插补策略。
如果 “mean”,则使用每列的均值替换缺失值。只能用于数值数据。
如果 “median”,则使用每列的中位数替换缺失值。只能用于数值数据。
如果 “most_frequent”,则使用每列的最频繁值替换缺失值。可以用于字符串或数值数据。如果有多个这样的值,只返回最小的。
如果 “constant”,则使用 fill_value 替换缺失值。可以用于字符串或数值数据。
如果是一个 Callable 实例,则使用在包含每列非缺失值的密集 1d 数组上运行该 callable 返回的标量统计值替换缺失值。
Added in version 0.20: strategy=”constant” 用于固定值插补。
Added in version 1.5: strategy=callable 用于自定义值插补。
- fill_valuestr 或数值, default=None
当 strategy == “constant” 时,
fill_value
用于替换所有missing_values
的出现。对于字符串或对象数据类型,fill_value
必须是一个字符串。 如果None
,对于数值数据fill_value
将为 0,对于字符串或对象数据类型将为 “missing_value”。- copybool, default=True
如果为 True,将创建 X 的副本。如果为 False,插补将在可能的情况下就地进行。请注意,在以下情况下,即使
copy=False
,也会始终创建新副本:如果
X
不是浮点值数组;如果
X
编码为 CSR 矩阵;如果
add_indicator=True
。
- add_indicatorbool, default=False
如果为 True,
MissingIndicator
变换将堆叠到插补器的变换输出上。这允许预测估计器在插补的情况下考虑缺失值。如果在 fit/训练时特征没有缺失值,即使在 transform/测试时有缺失值,该特征也不会出现在缺失指示器上。- keep_empty_featuresbool, default=False
如果为 True,在
fit
调用时仅由缺失值组成的特征将在transform
调用时返回。插补值始终为0
,除非strategy="constant"
,在这种情况下将使用fill_value
。Added in version 1.2.
- Attributes:
- statistics_形状为 (n_features,) 的数组
每个特征的插补填充值。计算统计值可能导致
np.nan
值。在transform
期间,对应于np.nan
统计值的特征将被丢弃。- indicator_
MissingIndicator
用于添加二进制指示器的指示器。如果
add_indicator=False
,则为None
。- n_features_in_int
在 fit 期间看到的特征数量。
Added in version 0.24.
- feature_names_in_形状为 (
n_features_in_
,) 的 ndarray 在 fit 期间看到的特征名称。仅当
X
的所有特征名称均为字符串时定义。Added in version 1.0.
See also
IterativeImputer
多变量插补器,通过从所有其他特征估计值来插补每个有缺失值的特征。
KNNImputer
多变量插补器,通过使用最近的样本来估计缺失特征。
Notes
在
fit
时仅包含缺失值的列在transform
时如果策略不是"constant"
将被丢弃。在预测上下文中,简单插补通常在与弱学习器结合时表现不佳。然而,与强大的学习器结合时,它可以导致与复杂插补(如
IterativeImputer
或KNNImputer
)相同或更好的性能。Examples
>>> 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]]) SimpleImputer() >>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]] >>> print(imp_mean.transform(X)) [[ 7. 2. 3. ] [ 4. 3.5 6. ] [10. 3.5 9. ]]
更多详细示例请参见 在构建估计器之前填补缺失值 。
- fit(X, y=None)#
拟合输入器在
X
上。- Parameters:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
输入数据,其中
n_samples
是样本的数量,n_features
是特征的数量。- y忽略
未使用,此处存在是为了通过约定保持 API 一致性。
- Returns:
- selfobject
拟合的估计器。
- fit_transform(X, y=None, **fit_params)#
拟合数据,然后进行转换。
将转换器拟合到
X
和y
,并带有可选参数fit_params
, 并返回X
的转换版本。- Parameters:
- X形状为 (n_samples, n_features) 的类数组
输入样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组, 默认=None
目标值(无监督转换为 None)。
- **fit_paramsdict
其他拟合参数。
- Returns:
- X_new形状为 (n_samples, n_features_new) 的 ndarray 数组
转换后的数组。
- get_feature_names_out(input_features=None)#
获取变换后的输出特征名称。
- Parameters:
- input_features字符串的数组或None,默认=None
输入特征。
如果
input_features
是None
,则使用feature_names_in_
作为输入特征名称。如果feature_names_in_
未定义,则生成以下输入特征名称:["x0", "x1", ..., "x(n_features_in_ - 1)"]
。如果
input_features
是数组,则input_features
必须与feature_names_in_
匹配(如果feature_names_in_
已定义)。
- Returns:
- feature_names_out字符串对象的ndarray
变换后的特征名称。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- inverse_transform(X)#
将数据转换回原始表示形式。
反转对数组执行的
transform
操作。 此操作只能在实例化SimpleImputer
并设置add_indicator=True
之后执行。请注意,
inverse_transform
只能反转具有缺失值二进制指示器的特征的转换。如果某个特征在fit
时没有缺失值,则该特征不会有二进制指示器,并且在transform
时进行的插补不会被反转。Added in version 0.24.
- Parameters:
- Xarray-like of shape (n_samples, n_features + n_features_missing_indicator)
要还原为原始数据的插补数据。它必须是一个插补数据和缺失指示器掩码的增强数组。
- Returns:
- X_originalndarray of shape (n_samples, n_features)
插补前的原始
X
,包含缺失值。
- set_output(*, transform=None)#
设置输出容器。
请参阅 介绍 set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_transform
的输出。"default"
: 转换器的默认输出格式"pandas"
: DataFrame 输出"polars"
: Polars 输出None
: 转换配置不变
Added in version 1.4:
"polars"
选项已添加。
- Returns:
- self估计器实例
估计器实例。
- set_params(**params)#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
)。后者具有形式为<component>__<parameter>
的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- transform(X)#
填补
X
中所有的缺失值。- Parameters:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
需要填补的输入数据。
- Returns:
- X_imputed{ndarray, sparse matrix} of shape (n_samples, n_features_out)
填补后的
X
。