当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn KNNImputer用法及代码示例


本文简要介绍python语言中 sklearn.impute.KNNImputer 的用法。

用法:

class sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False)

使用k-Nearest Neighbors 完成缺失值的插补。

每个样本的缺失值使用来自训练集中找到的 n_neighbors 最近邻居的平均值进行估算。如果两个样本都没有缺失的特征是接近的,那么两个样本是接近的。

在用户指南中阅读更多信息。

参数

missing_valuesint、float、str、np.nan 或 None,默认=np.nan

缺失值的占位符。所有出现的missing_values 都将被估算。对于带有缺失值的可空整数 dtype 的 pandas 数据帧,missing_values 应设置为 np.nan,因为 pd.NA 将转换为 np.nan。

n_neighbors整数,默认=5

用于插补的相邻样本数。

weights{‘uniform’, ‘distance’} 或可调用,默认='uniform'

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

  • ‘uniform’:统一权重。每个邻域中的所有点的权重相等。
  • ‘distance’:权重点按距离的倒数计算。在这种情况下,查询点的较近的邻居将比较远的邻居具有更大的影响。
  • callable:一个用户定义的函数,它接受一个距离数组,并返回一个包含权重的相同形状的数组。
metric{‘nan_euclidean’} 或可调用,默认='nan_euclidean'

用于搜索邻居的距离度量。可能的值:

  • ‘nan_euclidean’
  • callable :用户定义的函数,符合 _pairwise_callable(X, Y, metric, **kwds) 的定义。该函数接受两个数组 X 和 Y,以及 kwds 中的 missing_values 关键字,并返回一个标量距离值。
copy布尔,默认=真

如果为 True,将创建 X 的副本。如果为 False,则将尽可能就地进行插补。

add_indicator布尔,默认=假

如果为真, MissingIndicator 变换将叠加到 imputer 变换的输出上。这允许预测估计器解释缺失,尽管有插补。如果某个特征在拟合/训练时没有缺失值,则即使在变换/测试时存在缺失值,该特征也不会出现在缺失指示器上。

属性

indicator_sklearn.impute.MissingIndicator

用于为缺失值添加二元指标的指标。 None 如果 add_indicator 为假。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

参考

  • Olga Troyanskaya、Michael Cantor、Gavin Sherlock、Pat Brown、Trevor Hastie、Robert Tibshirani、David Botstein 和 Russ B. Altman,DNA 微阵列的缺失值估计方法,BIOINFORMATICS Vol。 17 号2001 年 6 月,第 520-525 页。

例子

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

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.impute.KNNImputer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。