【问题标题】:sklearn's imputer reducing columns?sklearn 估算减少列?
【发布时间】:2020-11-03 06:00:07
【问题描述】:

我想知道是否有人可以帮助解释我在 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 时我可以做些什么来保持原始形状有什么建议吗?

【问题讨论】:

    标签: python pandas numpy scikit-learn


    【解决方案1】:

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

    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.      ]])
    

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

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2018-11-05
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多