KNNImputer#

class sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False, keep_empty_features=False)[源代码]#

使用k-最近邻居填补缺失值的插补。

每个样本的缺失值使用来自 n_neighbors 训练集中发现的最近邻居。如果两个样本都没有缺失的特征很接近,那么两个样本也很接近。

阅读更多的 User Guide .

Added in version 0.22.

参数:
missing_valuesint、float、url、np.nan或无,默认=np.nan

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

n_neighborsint,默认=5

Number of neighboring samples to use for imputation.

weights' unique ','距离'或可调用,默认=' unique '

预测中使用的权重函数。 可能的值:

  • “均匀”:均匀的重量。每个邻居中的所有点的加权相等。

  • “距离”:通过距离的倒数来加权点。在这种情况下,查询点的较近邻居将比较远的邻居具有更大的影响力。

  • 可调用:用户定义的函数,接受距离数组,并返回包含权重的相同形状的数组。

metric' nan_euclidean '或可调用,默认=' nan_euclidean '

用于搜索邻居的距离指标。可能的值:

  • 'nan_euclidean'

  • 可调用:符合的定义的用户自定义函数 func_metric(x, y, *, missing_values=np.nan) . xy 对应于一行(即1-D阵列) XY ,分别。可调用函数应该返回一个标量距离值。

copy布尔,默认=True

If True, a copy of X will be created. If False, imputation will be done in-place whenever possible.

add_indicator布尔,默认=假

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

keep_empty_features布尔,默认=假

如果为True,则仅包含缺失值的功能 fit 被调用时在结果中返回 transform 被称为。估算价值始终是 0 .

Added in version 1.2.

属性:
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.

参见

SimpleImputer

Univariate imputer for completing missing values with simple strategies.

IterativeImputer

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

引用

  • Olga Troyanskaya, Michael Cantor, Gavin Sherlock, Pat Brown, Trevor Hastie, Robert Tibshirani, David Botstein and Russ B. Altman, Missing value estimation methods for DNA microarrays, BIOINFORMATICS Vol. 17 no. 6, 2001 Pages 520-525. <https://academic.oup.com/bioinformatics/article/17/6/520/272365> _

示例

>>> import numpy as np
>>> from sklearn.impute import KNNImputer
>>> X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
>>> imputer = KNNImputer(n_neighbors=2)
>>> imputer.fit_transform(X)
array([[1. , 2. , 4. ],
       [3. , 4. , 3. ],
       [5.5, 6. , 5. ],
       [8. , 8. , 7. ]])

有关更详细的示例,请参阅 在构建估计器之前输入缺失值 .

fit(X, y=None)[源代码]#

在X上调整输入器。

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

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

y忽视

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

返回:
self对象

拟合 KNNImputer 类实例。

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

参数名称映射到其值。

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形状类似阵列(n_samples,n_select_features)

插补数据集。 n_output_features 是指在执行过程中并不总是缺失的要素数量 fit .