SimpleImputer#

class sklearn.impute.SimpleImputer(*, missing_values=nan, strategy='mean', fill_value=None, copy=True, add_indicator=False, keep_empty_features=False)[源代码]#

Univariate imputer for completing missing values with simple strategies.

使用每列的描述性统计量(例如平均值、中位数或最频繁)或使用常数值替换缺失值。

阅读更多的 User Guide .

Added in version 0.20: SimpleImputer 取代了之前的 sklearn.preprocessing.Imputer 估计器现已删除。

参数:
missing_valuesint, float, str, np.nan, None or pandas.NA, default=np.nan

缺失值的占位符。的所有匹配项 missing_values 将被归因。对于具有缺失值的可空整数据类型的pandas的数据包, missing_values 可以设置为 np.nanpd.NA .

strategy字符串或可调用,默认值='mean'

归责策略。

  • 如果“平均值”,则使用每列的平均值替换缺失的值。仅可用于数字数据。

  • 如果“中位数”,则使用每列的中位数替换缺失值。仅可用于数字数据。

  • 如果“most_frequent”,则使用每列中最频繁的值替换missing。可以与字符串或数字数据一起使用。如果存在多个此类值,则仅返回最小的值。

  • 如果是“constant”,则用fill_Value替换缺失的值。可以与字符串或数字数据一起使用。

  • 如果是Callable的实例,则使用在包含每列非缺失值的密集1d数组上运行可调用而返回的纯量统计量替换缺失值。

Added in version 0.20: 策略=“恒定”用于固定值插补。

Added in version 1.5: 策略=可调用自定义值插补。

fill_value字符串或数字值,默认=无

当策略==“不变”时, fill_value 用于替换所有出现的missing_values。对于字符串或对象数据类型, fill_value 一定是一根绳子。如果 None , fill_value 当为字符串或对象数据类型插补数字数据和“missing_Value”时,将为0。

copy布尔,默认=True

如果为True,将创建X的副本。如果为假,将尽可能就地进行插补。请注意,在以下情况下,即使 copy=False :

  • 如果 X 不是浮点值数组;

  • 如果 X 被编码为CSR矩阵;

  • 如果 add_indicator=True .

add_indicator布尔,默认=假

如果为真,则为 MissingIndicator 转换将叠加到输入器转换的输出上。这使得预测估计器能够解释失踪情况,尽管有估算。如果某个特征在调整/训练时没有缺失值,则即使在变换/测试时存在缺失值,该特征也不会出现在缺失指示器上。

keep_empty_features布尔,默认=假

如果为True,则仅包含缺失值的功能 fit 被调用时在结果中返回 transform 被称为。估算价值始终是 0 除非 strategy="constant" 在这种情况下 fill_value 将被使用。

Added in version 1.2.

在 1.6 版本发生变更: 目前,当 keep_empty_feature=Falsestrategy="constant" ,不会删除空功能。此行为将在1.8版本中更改。设置 keep_empty_feature=True 以保持这种行为。

属性:
statistics_形状数组(n_features,)

每个要素的插补填充值。计算统计数据可能会导致 np.nan 价值观期间 transform ,特征对应于 np.nan 统计数据将被丢弃。

indicator_ : MissingIndicatorMissingIndicator

用于为缺失值添加二进制指示符的指示符。 None 如果 add_indicator=False .

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

IterativeImputer

多元插补器,用于估计每个特征要插补的值,但所有其他特征都缺少值。

KNNImputer

多元插补器,使用最近的样本估计缺失的特征。

注意到

仅包含缺失值的列 fit 被丢弃在 transform 如果战略不是 "constant" .

在预测环境中,简单的插补在与弱学习者相关时通常表现不佳。然而,对于一个强大的学习者来说,它可以带来与复杂的归因(例如)一样好或更好的表现 IterativeImputerKNNImputer .

示例

>>> 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 .

参数:
X{类数组,稀疏矩阵},形状(n_samples,n_features)

输入数据,其中 n_samples 是样本数量和 n_features 是功能的数量。

y忽视

未使用,此处列出是为了按照惯例实现API一致性。

返回:
self对象

拟合估计量。

fit_transform(X, y=None, **fit_params)[源代码]#

适应数据,然后对其进行转换。

适合变压器 Xy 具有可选参数 fit_params 并返回的转换版本 X .

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无

目标值(无监督转换)。

**fit_paramsdict

其他适合参数。

返回:
X_newndray形状数组(n_samples,n_features_new)

变形的数组。

get_feature_names_out(input_features=None)[源代码]#

获取用于转换的输出要素名称。

参数:
input_features字符串或无的类数组,默认=无

输入功能。

  • 如果 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_ 是定义的。

返回:
feature_names_out字符串对象的nd数组

转换的功能名称。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(X)[源代码]#

将数据转换回原始表示形式。

反转 transform 对数组执行的操作。此操作只能在 SimpleImputer 用实例化 add_indicator=True .

注意 inverse_transform 只能反转具有缺失值的二进制指示符的要素的转换。如果要素在 fit 当时,该功能不会有二进制指示器,并且在 transform 时间不会倒转。

Added in version 0.24.

参数:
X阵列状的形状 (n_samples,n_features + n_features_missing_indicator)

插补数据将恢复为原始数据。它必须是估算数据和缺失指标掩码的扩充数组。

返回:
X_original形状的nd数组(n_samples,n_features)

原始 X 与插补之前相同,缺少值。

set_output(*, transform=None)[源代码]#

设置输出容器。

看到 介绍 set_output API 了解如何使用API的示例。

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

Added in version 1.4: "polars" 添加了选项。

返回:
self估计器实例

估计实例。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

transform(X)[源代码]#

将所有缺失的值输入 X .

参数:
X{类数组,稀疏矩阵},形状(n_samples,n_features)

要完成的输入数据。

返回:
X_imputed形状的{nd数组,稀疏矩阵} (n_samples,n_features_out)

X 带有估算的价值。