【问题标题】:Error when imputing minimum values using SimpleImputer使用 SimpleImputer 输入最小值时出错
【发布时间】:2021-11-17 18:34:25
【问题描述】:

我正在尝试使用每列的最小值来替换缺失值,但一直出现错误。以下是我的代码:

from sklearn.impute import SimpleImputer
numeric_cols = [X_test.select_dtypes(exclude=['object']).columns]
numeric_df = X_test.select_dtypes(exclude=['object'])
for col in numeric_cols:
    my_imputer = SimpleImputer(strategy='constant', fill_value=X_test[col].min())
    imputed_numeric_X_test = pd.DataFrame(my_imputer.fit_transform(numeric_df))
    imputed_numeric_X_test.columns = numeric_df.columns

这是我运行时遇到的错误:

ValueError: 'fill_value'=MSSubClass         20.0
LotFrontage        21.0
LotArea          1470.0
OverallQual         1.0
OverallCond         1.0
YearBuilt        1879.0
YearRemodAdd     1950.0
MasVnrArea          0.0
BsmtFinSF1          0.0
BsmtFinSF2          0.0
BsmtUnfSF           0.0
TotalBsmtSF         0.0
1stFlrSF          407.0
2ndFlrSF            0.0
LowQualFinSF        0.0
GrLivArea         407.0
BsmtFullBath        0.0
BsmtHalfBath        0.0
FullBath            0.0
HalfBath            0.0
BedroomAbvGr        0.0
KitchenAbvGr        0.0
TotRmsAbvGrd        3.0
Fireplaces          0.0
GarageYrBlt      1895.0
GarageCars          0.0
GarageArea          0.0
WoodDeckSF          0.0
OpenPorchSF         0.0
EnclosedPorch       0.0
3SsnPorch           0.0
ScreenPorch         0.0
PoolArea            0.0
MiscVal             0.0
MoSold              1.0
YrSold           2006.0
dtype: float64 is invalid. Expected a numerical value when imputing numerical data

出了什么问题,我该如何解决?

【问题讨论】:

    标签: python machine-learning scikit-learn missing-data imputation


    【解决方案1】:

    SimpleImputer 仅支持 fill_value 的单个值,而不支持每列规范。在Issue19783 中讨论了添加该内容,但已通过,并且无论如何都不支持采用列最小值。我找不到任何讨论来为strategy 添加自定义可调用选项,这似乎是最清晰的解决方案。所以我认为你被困在手动或使用自定义变压器的情况下。要手动执行此操作,您可以使用链接问题中指定的 ColumnTransformer 方法。

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2019-11-26
      • 2021-04-19
      • 2020-07-15
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      相关资源
      最近更新 更多