AttributeError: 'SimpleImputer' 对象没有属性 'mean'

问题描述

我正在尝试对 iris 数据集执行预处理,但在插补步骤中,我在使用 SimpleImputer 打印每列的平均值时遇到此错误

这里是完整的代码供参考。我在最后一部分收到错误

import numpy as np
from sklearn.datasets import load_iris
from sklearn import preprocessing

iris = load_iris()
X = iris.data
iris_normalized = preprocessing.normalize(iris.datadata,norm='l2')
print(iris_normalized.mean(axis=0))

enc = preprocessing.OneHotEncoder()
iris_target_onehot = enc.fit_transform(iris.target.reshape(-1,1))
print(iris_target_onehot.toarray()[[0,50,100]])


X[:50,:] = np.nan
from sklearn.impute import SimpleImputer
iris_imputed = SimpleImputer(missing_values=np.nan,strategy='mean')
iris_imputed.fit_transform(X)
print(iris_imputed.mean(axis=0))


抱歉,我是机器学习的新手。

解决方法

在调用其平均值之前,只需将 fit_transform 保存到 iris_imputed。它会起作用

iris_imputed = iris_imputed.fit_transform(iris.data)