簡易補值器#
- 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.nan
或pd.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=False
和strategy="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
時被捨棄。在預測情境中,當與弱學習器結合時,簡單插補通常表現不佳。然而,使用強大的學習器,它可以產生與複雜插補(例如
IterativeImputer
或KNNImputer
)一樣好甚至更好的效能。範例
>>> 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
將轉換器擬合到X
和y
,並回傳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_features
為None
,則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
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換設定未變更
於 1.4 版本新增:新增了
"polars"
選項。
- 回傳值:
- self估計器實例
估計器實例。