2015-08-26 143 views
0

我有一个训练有素的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') 

具有相同的结果。

+0

根据提供的信息无法回答此问题。在保存之前需要看到模型预测成功,以确定模型是否成功。看起来这不是RandomForestRegressor中的错误,而是海报的代码。建议关闭这个。 – aquraishi

+0

该帖子的要点是该模型没有错误,但保存的模型不能在没有上面列出的适合性错误的情况下运行。该错误明确指出,如果已经发布的代码清楚说明该模型实际上是合适的,则该模型不适用。相关的代码已经发布。 – user2188329

回答

-1

也许文件扩展名是错误的,我试图使用joblib.dump(rfClf,“models/train_model_6.m”)来保存模型,它的工作原理,你可以试试看。

+0

这不是答案。它应该作为评论发布在评论 – ssuperczynski

+0

@infaustus,我发现它需要50声望才能发布评论下的问题,但是你可以尝试我的解决方案。 –

相关问题