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 = [[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]) |
在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_features 是fit 期間是沒有缺失值的特征數。 |