本文簡要介紹python語言中 sklearn.impute.IterativeImputer
的用法。
用法:
class sklearn.impute.IterativeImputer(estimator=None, *, missing_values=nan, sample_posterior=False, max_iter=10, tol=0.001, n_nearest_features=None, initial_strategy='mean', imputation_order='ascending', skip_complete=False, min_value=- inf, max_value=inf, verbose=0, random_state=None, add_indicator=False)
多元估算器,從所有其他特征中估計每個特征。
一種通過以round-robin 方式將具有缺失值的每個特征建模為其他特征的函數來估算缺失值的策略。
在用戶指南中閱讀更多信息。
注意
這個估計器仍然實驗目前:預測和 API 可能會在沒有任何棄用周期的情況下發生變化。要使用它,您需要顯式導入
enable_iterative_imputer
:>>> # explicitly require this experimental feature >>> from sklearn.experimental import enable_iterative_imputer # noqa >>> # now you can import normally from sklearn.impute >>> from sklearn.impute import IterativeImputer
- estimator:估計器對象,默認=BayesianRidge()
在round-robin 插補的每個步驟中使用的估計器。如果
sample_posterior=True
,估計器必須在其predict
方法中支持return_std
。- missing_values:int 或 np.nan,默認=np.nan
缺失值的占位符。所有出現的
missing_values
都將被估算。對於帶有缺失值的可空整數 dtype 的 pandas 數據幀,應將missing_values
設置為np.nan
,因為pd.NA
將轉換為np.nan
。- sample_posterior:布爾,默認=假
是否從每個插補的擬合估計量的(高斯)預測後驗中采樣。如果設置為
True
,估計器必須在其predict
方法中支持return_std
。如果使用IterativeImputer
進行多重插補,則設置為True
。- max_iter:整數,默認=10
在返回最後一輪計算的插補之前要執行的最大插補輪數。一輪是具有缺失值的每個特征的單一插補。停止條件滿足一次
max(abs(X_t - X_{t-1}))/max(abs(X[known_vals])) < tol
,其中X_t
在迭代t
時為X
。請注意,僅在sample_posterior=False
時才應用提前停止。- tol:浮點數,默認=1e-3
停止條件的容差。
- n_nearest_features:整數,默認=無
用於估計每個特征列的缺失值的其他特征的數量。使用每個特征對之間的絕對相關係數(初始插補後)來測量特征之間的接近度。為了確保在整個插補過程中覆蓋特征,相鄰特征不一定是最近的,而是以與每個插補目標特征的相關性成比例的概率繪製。當特征數量巨大時可以提供顯著的加速。如果是
None
,則將使用所有函數。- initial_strategy:{‘mean’, ‘median’,‘most_frequent’, ‘constant’},默認='平均'
使用哪種策略來初始化缺失值。與
SimpleImputer
中的strategy
參數相同。- imputation_order:{‘ascending’, ‘descending’, ‘roman’, ‘arabic’, ‘random’},默認='升序'
特征將被估算的順序。可能的值:
'ascending'
:從缺失值最少到最多的特征。'descending'
:從缺失值最多到最少的特征。'roman'
:從左到右。'arabic'
:從右到左。'random'
:每輪隨機順序。
- skip_complete:布爾,默認=假
如果
True
,則在transform
期間有缺失值的特征,而在fit
期間沒有任何缺失值的特征將僅使用初始插補方法進行插補。如果您有許多特征在fit
和transform
時間都沒有缺失值,則設置為True
以節省計算。- min_value:形狀為浮點數或類似數組 (n_features,),默認=-np.inf
最小可能的估算值。如果是標量,則廣播到形狀
(n_features,)
。如果類似於數組,則需要形狀(n_features,)
,每個特征有一個最小值。默認為-np.inf
。- max_value:形狀為浮點數或類似數組 (n_features,),默認=np.inf
最大可能的估算值。如果是標量,則廣播到形狀
(n_features,)
。如果類似於數組,則需要形狀(n_features,)
,每個特征都有一個最大值。默認為np.inf
。- verbose:整數,默認=0
詳細程度標誌,控製在評估函數時發出的調試消息。越高,越詳細。可以是 0、1 或 2。
- random_state:int、RandomState 實例或無,默認=無
要使用的偽隨機數生成器的種子。如果
n_nearest_features
不是None
,則隨機選擇估計器特征,如果random
則隨機選擇imputation_order
,如果sample_posterior=True
則從後驗抽樣。使用整數進行確定性。請參閱詞匯表。- add_indicator:布爾,默認=假
如果
True
,則MissingIndicator
變換將堆疊到 imputer 變換的輸出上。這允許預測估計器解釋缺失,盡管有插補。如果某個特征在擬合/訓練時沒有缺失值,則即使在變換/測試時存在缺失值,該特征也不會出現在缺失指示器上。
- initial_imputer_:
SimpleImputer
類型的對象 Imputer 用於初始化缺失值。
- imputation_sequence_:元組列表
每個元組都有
(feat_idx, neighbor_feat_idx, estimator)
,其中feat_idx
是要估算的當前特征,neighbor_feat_idx
是用於估算當前特征的其他特征的數組,而estimator
是用於估算的經過訓練的估計器。長度為self.n_features_with_missing_ * self.n_iter_
。- n_iter_:int
發生的迭代輪數。如果達到提前停止標準,將小於
self.max_iter
。- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。- n_features_with_missing_:int
具有缺失值的特征數。
- indicator_:sklearn.impute.MissingIndicator
用於為缺失值添加二元指標的指標。
None
如果add_indicator=False
。- random_state_:RandomState 實例
RandomState 實例由種子、隨機數生成器或由
np.random
生成。
- initial_imputer_:
參數:
屬性:
注意:
為了支持歸納模式下的插補,我們在
fit
階段存儲每個特征的估計器,並在transform
階段進行預測而不重新擬合(按順序)。包含
fit
處所有缺失值的特征將在transform
上被丟棄。參考:
- 1
Stef van Buuren, Karin Groothuis-Oudshoorn (2011)。 “小鼠:通過 R 中的鏈式方程進行多元插補”。統計軟件雜誌 45:1-67。
- 2
S. F. 巴克 (1960)。 “適用於電子計算機的多元數據中缺失值的估計方法”。皇家統計學會雜誌 22(2): 302-306。
例子:
>>> import numpy as np >>> from sklearn.experimental import enable_iterative_imputer >>> from sklearn.impute import IterativeImputer >>> imp_mean = IterativeImputer(random_state=0) >>> imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]]) IterativeImputer(random_state=0) >>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]] >>> imp_mean.transform(X) array([[ 6.9584..., 2. , 3. ], [ 4. , 2.6000..., 6. ], [10. , 4.9999..., 9. ]])
相關用法
- Python sklearn IncrementalPCA用法及代碼示例
- Python sklearn IsolationForest用法及代碼示例
- Python sklearn IncrementalPCA.transform用法及代碼示例
- Python sklearn IsotonicRegression用法及代碼示例
- Python sklearn Isomap用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
- Python sklearn load_svmlight_file用法及代碼示例
- Python sklearn make_pipeline用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.impute.IterativeImputer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。