RuntimeError:重置参数为False,但没有n_features_in_属性。这个估计器安装了吗?

M W*_*Waz 6 python pickle flask scikit-learn

我正在使用 pickle 保存 sklearn.impute.SimpleImputer 对象。该输入器适合

imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean')
imputer = imputer.fit(train)
Run Code Online (Sandbox Code Playgroud)

然后我保存输入器

pickle.dump(imputer,open('imputer.pkl','wb'))
Run Code Online (Sandbox Code Playgroud)

并使用以下命令将模型加载到烧瓶应用程序中

imputer = pickle.load(open('imputer.pkl','rb'))
Run Code Online (Sandbox Code Playgroud)

如果我检查 imputer.statistics_ ,我可以成功看到应该估算的值。然而,当我跑步时

imputer.transform(test)
Run Code Online (Sandbox Code Playgroud)

在我的烧瓶应用程序中,使用加载了 pickle 的输入器,出现以下错误:

“重置参数为 False,但没有” RuntimeError:重置参数为 False,但没有 n_features_in_ 属性。这个估计器安装了吗?

我正在使用 sklearn 版本 0.23.1 来适应输入器并转换数据。有人对此有任何见解吗?请让我知道我还可以提供哪些其他信息。

小智 7

将 sklearn 版本恢复到 0.22.2.post1 可以解决您的问题:

pip install scikit-learn==0.22.2.post1
Run Code Online (Sandbox Code Playgroud)

这对我有用。