當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。