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)
.x
和y
对应于一行(即1-D阵列)X
和Y
,分别。可调用函数应该返回一个标量距离值。
- 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_ :
MissingIndicator
MissingIndicator
用于为缺失值添加二进制指示符的指示符。
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.
- indicator_ :
参见
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)[源代码]#
适应数据,然后对其进行转换。
适合变压器
X
和y
具有可选参数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_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_
是定义的。
- 返回:
- 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”},默认=无
配置输出
transform
和fit_transform
."default"
:Transformer的默认输出格式"pandas"
:DataFrame输出"polars"
:两极输出None
:转换配置不变
Added in version 1.4:
"polars"
添加了选项。
- 返回:
- self估计器实例
估计实例。