本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。