SimpleImputer 中的错误

数据挖掘 Python scikit-学习
2022-02-19 08:31:51

我的代码:

from sklearn.impute import SimpleImputer

fill_values=SimpleImputer(missing_values=0,strategy='mean')

X_train=fill_values.fit(X_train)
X_test=fill_values.fit(X_test)

imp_X_train=fill_values.transform(X_train)
imp_X_test=fill_values.trainsform(X_test)

给出错误:

TypeError: float() argument must be a string or a number, not 'SimpleImputer'

我哪里做错了?

2个回答

例如,如果要使用X_train预处理器转换数据数组,SimpleImputer则应使用 method .fit_transform

例如:X_train = fill_values.fit_transform(X_train)

如果您仅使用fit它将返回一个类型的实例,SimpleImputer这是您的错误。

转换器方法的输出fit()是类实例本身(它返回“自我”)。因此通过这样做:

X_train=fill_values.fit(X_train)

您销毁了X_traindataFrame,因此当您将其用作 transform() 的输入时,您会收到错误消息。此外,在调用fit()它时它会为 做准备,transform()因此在调用transform().

你应该这样做:

from sklearn.impute import SimpleImputer

fill_values=SimpleImputer(missing_values=0,strategy='mean')

fill_values.fit(X_train)
imp_X_train=fill_values.transform(X_train)

fill_values.fit(X_test)
imp_X_test=fill_values.trainsform(X_test)