gpt4 book ai didi

python - 使用 sklearn IterativeImputer 类为 MICE 估算缺失值

转载 作者:行者123 更新时间:2023-12-01 00:25:29 31 4
gpt4 key购买 nike

我正在尝试学习如何实现 MICE 来为我的数据集估算缺失值。我听说过 fancyimpute 的 MICE,但我也读到 sklearn 的 IterativeImputer 类可以实现类似的结果。来自 sklearn 的文档:

Our implementation of IterativeImputer was inspired by the R MICE package (Multivariate Imputation by Chained Equations) [1], but differs from it by returning a single imputation instead of multiple imputations. However, IterativeImputer can also be used for multiple imputations by applying it repeatedly to the same dataset with different random seeds when sample_posterior=True

我见过“种子”在不同的管道中使用,但我对它们的理解一直不够好,无法在我自己的代码中实现它们。 我想知道是否有人可以解释并提供如何使用 sklearn 的 IterativeImputer 实现 MICE 插补种子的示例? 谢谢!

最佳答案

IterativeImputer 行为可以根据随机状态而改变。可以设置的随机状态也称为“种子”。

正如文档所述,当将 sample_posterior 设置为 True 并更改随机种子(即参数 random_state)时,我们可以获得多重插补.

以下是如何使用它的示例:

import numpy as np
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

X_train = [[1, 2],
[3, 6],
[4, 8],
[np.nan, 3],
[7, np.nan]]
X_test = [[np.nan, 2],
[np.nan, np.nan],
[np.nan, 6]]

for i in range(3):
imp = IterativeImputer(max_iter=10, random_state=i, sample_posterior=True)
imp.fit(X_train)
print(f"imputation {i}:")
print(np.round(imp.transform(X_test)))

它输出:

imputation 0:
[[ 1. 2.]
[ 5. 10.]
[ 3. 6.]]
imputation 1:
[[1. 2.]
[0. 1.]
[3. 6.]]
imputation 2:
[[1. 2.]
[1. 2.]
[3. 6.]]

我们可以观察三种不同的插补。

关于python - 使用 sklearn IterativeImputer 类为 MICE 估算缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613108/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com