我有一个训练有素的RandomForestRegressor模型,我想保存到一个文件以供重复使用。我遵循scikit-learn持久性页面上的说明,并可以保存训练有素的模型。问题是我似乎无法重新使用它,因为scikit-learn并不认为它是经过培训的。为什么我无法保存训练有素的RandomForestRegressor模型?
model = RandomForestRegressor(n_estimators=100, max_features='sqrt', max_depth=12, n_jobs=24)
model.fit(training_input,training_target_values)
joblib.dump(model, './trained_model/tree.pkl')
但是,当我尝试重新使用该模型:
model = joblib.load('./trained_model/tree.pkl')
prediction = np.array(model.predict(patient_arr))
我得到的错误:
文件“/usr/local/lib/python2.7/dist-packages /sklearn/ensemble/forest.py“,行614,在预测 check_is_fitted(self,'n_outputs_') 文件”/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py“ ,第627行,check_is_fitted raise NotFittedError(msg%{'name':type(estimator)。name}) sklearn.utils.validation.NotFittedError:此RandomForestRegressor实例尚未安装。在使用这种方法之前,用适当的参数调用'fit'。
我也试过:
trained_model = model.fit(training_input,training_target_values)
joblib.dump(trained_model, './trained_model/tree.pkl')
具有相同的结果。
根据提供的信息无法回答此问题。在保存之前需要看到模型预测成功,以确定模型是否成功。看起来这不是RandomForestRegressor中的错误,而是海报的代码。建议关闭这个。 – aquraishi
该帖子的要点是该模型没有错误,但保存的模型不能在没有上面列出的适合性错误的情况下运行。该错误明确指出,如果已经发布的代码清楚说明该模型实际上是合适的,则该模型不适用。相关的代码已经发布。 – user2188329