簡易補值器#

class sklearn.impute.SimpleImputer(*, missing_values=nan, strategy='mean', fill_value=None, copy=True, add_indicator=False, keep_empty_features=False)[原始碼]#

單變量補值器,用於使用簡單策略補全遺失值。

使用描述性統計量(例如平均值、中位數或最頻繁的值)沿每列替換遺失值,或使用常數值。

請在使用者指南中閱讀更多資訊。

版本 0.20 新增: SimpleImputer 取代了之前的 sklearn.preprocessing.Imputer 估計器,該估計器現在已移除。

參數:
missing_valuesint、float、str、np.nan、None 或 pandas.NA,預設值為 np.nan

遺失值的佔位符。所有出現的 missing_values 都將被補值。對於具有可空整數數據類型且具有遺失值的 pandas 資料框,missing_values 可以設定為 np.nanpd.NA

strategystr 或可呼叫物件,預設值為 'mean'

補值策略。

  • 如果為 “mean”,則使用沿每列的平均值替換遺失值。只能與數值資料一起使用。

  • 如果為 “median”,則使用沿每列的中位數替換遺失值。只能與數值資料一起使用。

  • 如果為 “most_frequent”,則使用沿每列的最頻繁值替換遺失值。可以與字串或數值資料一起使用。如果有多個此類值,則僅返回最小的值。

  • 如果為 “constant”,則使用 fill_value 替換遺失值。可以與字串或數值資料一起使用。

  • 如果為 Callable 的實例,則使用執行 callable 後返回的純量統計量替換遺失值,該 callable 針對包含每列非遺失值的密集 1 維陣列執行。

版本 0.20 新增: strategy="constant",用於固定值補值。

版本 1.5 新增: strategy=callable,用於自訂值補值。

fill_valuestr 或數值,預設值為 None

當 strategy == “constant” 時,fill_value 用於替換所有出現的 missing_values。對於字串或物件資料類型,fill_value 必須是字串。如果為 None,則在補值數值資料時,fill_value 將為 0,對於字串或物件資料類型則為 “missing_value”。

copybool,預設值為 True

如果為 True,則會建立 X 的副本。如果為 False,則會盡可能就地執行補值。請注意,在以下情況下,即使 copy=False,也會始終建立新的副本

  • 如果 X 不是浮點值的陣列;

  • 如果 X 編碼為 CSR 矩陣;

  • 如果 add_indicator=True

add_indicatorbool,預設值為 False

如果為 True,則 MissingIndicator 轉換將堆疊在補值器的轉換輸出之上。這允許預測估計器考慮遺失值,儘管已進行補值。如果在擬合/訓練時,某個特徵沒有遺失值,則即使在轉換/測試時有遺失值,該特徵也不會出現在遺失值指標上。

keep_empty_featuresbool,預設值為 False

如果為 True,則在呼叫 fit 時僅由遺失值組成的特徵會在呼叫 transform 時在結果中返回。補值始終為 0,除非 strategy="constant",在這種情況下,將改用 fill_value

版本 1.2 新增。

版本 1.6 變更: 目前,當 keep_empty_feature=Falsestrategy="constant" 時,不會刪除空特徵。此行為將在版本 1.8 中變更。設定 keep_empty_feature=True 以保留此行為。

屬性:
statistics_形狀為 (n_features,) 的陣列

每個特徵的補值。計算統計量可能會產生 np.nan 值。在 transform 期間,將會捨棄與 np.nan 統計量相對應的特徵。

indicator_MissingIndicator

用於新增遺失值二元指標的指標。如果 add_indicator=False,則為 None

n_features_in_int

擬合期間看到的特徵數。

版本 0.24 新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 過程中看到的特徵名稱。僅在 X 具有全部為字串的特徵名稱時定義。

於 1.0 版本新增。

另請參閱

IterativeImputer

多元插補器,它會根據所有其他特徵,估計每個具有遺失值的特徵的插補值。

KNNImputer

多元插補器,它使用最近的樣本來估計遺失的特徵。

注意事項

如果策略不是 "constant",則在 fit 時僅包含遺失值的欄位會在 transform 時被捨棄。

在預測情境中,當與弱學習器結合時,簡單插補通常表現不佳。然而,使用強大的學習器,它可以產生與複雜插補(例如 IterativeImputerKNNImputer)一樣好甚至更好的效能。

範例

>>> import numpy as np
>>> from sklearn.impute import SimpleImputer
>>> imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
>>> imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]])
SimpleImputer()
>>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]]
>>> print(imp_mean.transform(X))
[[ 7.   2.   3. ]
 [ 4.   3.5  6. ]
 [10.   3.5  9. ]]

有關更詳細的範例,請參閱 在建立估計器之前插補遺失值

fit(X, y=None)[原始碼]#

X 上擬合插補器。

參數:
X{array-like, 稀疏矩陣},形狀 (n_samples, n_features)

輸入資料,其中 n_samples 是樣本數,n_features 是特徵數。

y已忽略

未使用,為了 API 的一致性而存在。

回傳值:
self物件

已擬合的估計器。

fit_transform(X, y=None, **fit_params)[原始碼]#

擬合資料,然後轉換它。

使用可選參數 fit_params 將轉換器擬合到 Xy,並回傳 X 的轉換版本。

參數:
Xarray-like,形狀 (n_samples, n_features)

輸入樣本。

yarray-like,形狀 (n_samples,) 或 (n_samples, n_outputs),預設值為 None

目標值 (對於無監督轉換為 None)。

**fit_paramsdict

其他擬合參數。

回傳值:
X_newndarray 陣列,形狀 (n_samples, n_features_new)

轉換後的陣列。

get_feature_names_out(input_features=None)[原始碼]#

取得轉換的輸出特徵名稱。

參數:
input_featuresarray-like of str 或 None,預設值為 None

輸入特徵。

  • 如果 input_featuresNone,則 feature_names_in_ 將用作輸入特徵名稱。如果未定義 feature_names_in_,則會產生以下輸入特徵名稱:["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 是類陣列,則如果已定義 feature_names_in_,則 input_features 必須與 feature_names_in_ 相符。

回傳值:
feature_names_outstr 物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請檢查 使用者指南,了解路由機制如何運作。

回傳值:
routingMetadataRequest

一個 MetadataRequest,封裝路由資訊。

get_params(deep=True)[原始碼]#

取得此估計器的參數。

參數:
deepbool,預設值為 True

如果為 True,將回傳此估計器和所包含的子物件(為估計器)的參數。

回傳值:
paramsdict

參數名稱對應到它們的值。

inverse_transform(X)[原始碼]#

將資料轉換回原始表示法。

反轉在陣列上執行的 transform 操作。此操作只能在使用 add_indicator=True 實例化 SimpleImputer 之後執行。

請注意,inverse_transform 只能反轉遺失值具有二元指標的特徵中的轉換。如果某個特徵在 fit 時間沒有遺失值,則該特徵不會有二元指標,並且在 transform 時間完成的插補將不會被反轉。

版本 0.24 新增。

參數:
Xarray-like,形狀 (n_samples, n_features + n_features_missing_indicator)

要還原為原始資料的插補資料。它必須是插補資料和遺失指標遮罩的增強陣列。

回傳值:
X_originalndarray,形狀 (n_samples, n_features)

原始的 X,其中遺失值是插補之前的樣子。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

有關如何使用 API 的範例,請參閱 介紹 set_output API

參數:
transform{“default”, “pandas”, “polars”},預設值為 None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定未變更

於 1.4 版本新增:新增了 "polars" 選項。

回傳值:
self估計器實例

估計器實例。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估計器參數。

回傳值:
self估計器實例

估計器實例。

transform(X)[原始碼]#

插補 X 中的所有遺失值。

參數:
X{array-like, 稀疏矩陣},形狀 (n_samples, n_features)

要完成的輸入資料。

回傳值:
X_imputed{ndarray, 稀疏矩陣},形狀 (n_samples, n_features_out)

具有插補值的 X