sklearn.impute.KNNImputer?

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

[源碼]

使用k近鄰來完成缺失值的估算。

每個樣本的缺失值都是使用訓練集中找到的n_neighbors最近鄰的平均值估算的 。如果兩個樣本都沒有丟失的特征很接近,那么這兩個樣本就是相近的。

用戶指南中閱讀更多內容。

0.22版中的新功能。

參數 說明
missing_values number, string, np.nan or None, default=np.nan
缺失值的占位符。所有出現missing_values的情況都將被估算。對于具有缺失值的可空整數類型的pandas數據框,missing_values 應將其設置為np.nan,因為pd.NA將轉換為np.nan
n_neighbors int, default=5
用于插補的相鄰樣本數。
weights {‘uniform’, ‘distance’} or callable, default=’uniform’
預測中使用的權重函數。可能的值:

- 'uniform':統一的權重。每個鄰域內的所有點的權重是相等的。
- 'distance':權重按點的距離的倒數表示。在這種情況下,查詢點較近的鄰居將比較遠的鄰居具有更大的影響。
- callable:用戶定義的函數,該函數接受距離數組,并返回包含權重的相同形狀的數組。
metric {‘nan_euclidean’} or callable, default=’nan_euclidean’
用于搜索鄰居的距離度量。可能的值:

- 'nan_euclidean'
- callable:符合_pairwise_callable(X, Y, metric, **kwds)定義的用戶定義函數。該函數接受兩個數組X和Y,以及kwds中的一個missing_values關鍵字, 并返回標量距離值。
copy bool, default=True
如果為True,將創建X的副本。如果為False,只要可能,就要對其進行插補。
add_indicator bool, default=False
如果為True,則MissingIndicator轉換將堆疊到輸入的轉換的輸出上。這使得預測性估計器可以解釋盡管進行了插補但仍存在缺失。如果某個特征在擬合或訓練時沒有缺失值,則即使在變換或測試時有缺失值,該特征也不會出現在缺失指示器上。
屬性 說明
indicator_ sklearn.impute.MissingIndicator
用于為缺失值添加二進制指示符的指示符。 如果add_indicator為False,則None

參考

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.

示例

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

方法

方法 說明
fit(X[, y]) 在X上擬合轉換器。
fit_transform(X[, y]) 擬合數據,然后對其進行轉換。
get_params([deep]) 獲取此估計器的參數。
set_params(**params) 設置此估計器的參數。
transform(X) 估算X中的所有缺失值。
__init__(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False)

[源碼]

初始化self,參見help(type(self))獲取更準確的說明。

fit(X, y=None)

[源碼]

在X上擬合轉換器。

參數 說明
X array-like shape of (n_samples, n_features)
輸入數據,其中n_samples是樣本數, n_features是特征數。
返回值 說明
self object
fit_transform(X, y=None, **fit_params)

[源碼]

擬合數據,然后對其進行轉換。

使用可選參數fit_params將轉換器擬合到X和y,并返回X的轉換值。

參數 說明
X {array-like, sparse matrix, dataframe} of shape (n_samples, n_features)
y ndarray of shape (n_samples,), default=None
目標值。
**fit_params dict
其他擬合參數。
返回值 說明
X_new ndarray array of shape (n_samples, n_features_new)
轉換后的數組。
get_params(deep=True)

[源碼]

獲取此估計器的參數。

參數 說明
deep bool, default=True
如果為True,則將返回此估算器和所包含子對象的參數。
返回值 說明
params mapping of string to any
參數名稱映射到其值。
set_params(**params)

[源碼]

設置此估算器的參數。

該方法適用于簡單的估計器以及嵌套對象(例如管道)。后者具有<component>__<parameter>形式的參數, 以便可以更新嵌套對象的每個組件。

參數 說明
**params dict
估計器參數。
返回值 說明
self object
估計器實例。
transform(X)

[源碼]

對X中所有缺失值進行插補。

參數 說明
X array-like of shape (n_samples, n_features)
輸入數據。
返回值 說明
X array-like of shape (n_samples, n_output_features)
插補數據集。n_output_featuresfit期間是沒有缺失值的特征數。