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.nanpd.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" 将被丢弃。

在预测上下文中,简单插补通常在与弱学习器结合时表现不佳。然而,与强大的学习器结合时,它可以导致与复杂插补(如 IterativeImputerKNNImputer )相同或更好的性能。

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)#

拟合数据,然后进行转换。

将转换器拟合到 Xy ,并带有可选参数 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_featuresNone ,则使用 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

配置 transformfit_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