为了账号安全,请及时绑定邮箱和手机立即绑定

sklearn 的 imputer 减少列?

sklearn 的 imputer 减少列?

慕田峪4524236 2023-03-08 11:03:34
我想知道是否有人可以帮助解释我在 sklearn 的 interativeImputer 中看到的奇怪行为。imputer = IterativeImputer(max_iter=100)print("dateframe shape ", dataframe.shape)tempDF = imputer.fit_transform(dataframe)print("imputer shape: ", tempDF.shape)我假设形状会保持不变,但结果是:dateframe shape  (1978, 100)imputer shape:  (1978, 91)我在将 numpy 数组 sklearn 返回转换回 pandas df 时发现了这个错误tempDF = pd.DataFrame(tempDF, index=dataframe.index, columns=dataframe.columns)关于使用 imputer 时我可以做些什么来保持原始形状的任何建议?
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

这可能是因为你的一些 coloms 无处不在NaN,我为你创建了一个小例子,遵循了文档:


from sklearn.experimental import enable_iterative_imputer

from sklearn.impute import IterativeImputer

imp_mean = IterativeImputer(random_state=0)

import numpy as np

imp_mean.fit([[7, 2, np.nan], [4, np.nan, np.nan], [10, 5, np.nan]])

X = [[7, 2, np.nan], [4, np.nan, np.nan], [10, 5, np.nan]]

imp_mean.transform(X)

array([[ 7.      ,  2.      ],

       [ 4.      , -0.999998],

       [10.      ,  5.      ]])

所以如果一切都是NanIterativeImputer 不知道如何适应和转换它。文档中的原始示例以 (3,3) 形状结束。


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信