Imputing missing values using sklearn IterativeImputer class for MICE(使用skLearning IterativeImputer类为鼠标输入遗漏的值)
本文介绍了使用skLearning IterativeImputer类为鼠标输入遗漏的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试学习如何实现MICE来输入我的数据集的缺失值。我听说过Fancyimpute的鼠标,但我也读到Sklearn的IterativeImputer类可以实现类似的结果。摘自SkLearning的文档:
我们实现IterativeImputer的灵感来自R MICE Package(链式方程的多元推算)[1],但是 与它的不同之处在于,它返回单个补偿而不是多个 推卸责任。但是,IterativeImputer也可以用于多个 通过将其重复应用于相同的数据集 Sample_After=True时的不同随机种子
我见过在不同的管道中使用"种子",但我对它们的理解还不够深入,无法在我自己的代码中实现它们。我想知道有没有人能解释一下,并提供一个如何使用skLearning的IterativeImputer来实现小鼠种子的例子?谢谢!
推荐答案
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.]]
我们可以观察到这三种不同的推论。
这篇关于使用skLearning IterativeImputer类为鼠标输入遗漏的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用skLearning IterativeImputer类为鼠标输入遗漏的值
基础教程推荐
猜你喜欢
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01