为什么我不能保存训练有素的RandomForestRegressor模型?

时间:2015-08-26 20:56:37

标签: python random-forest

我有一个训练有素的RandomForestRegressor模型我想保存到文件中以便重复使用。我按照scikit-learn持久性页面上的说明操作,可以保存训练有素的模型。问题是我似乎无法重复使用它,因为scikit-learn不会将其识别为受过训练。

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_')   在check_is_fitted中输入文件“/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py”,第627行     引发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')

具有相同的结果。

1 个答案:

答案 0 :(得分:-2)

也许文件扩展名错误,我尝试使用joblib.dump(rfClf,“models / train_model_6.m”)来保存模型,它可以运行,你可以尝试一下。