【问题标题】:Why can't I save my trained RandomForestRegressor model?为什么我无法保存经过训练的 RandomForestRegressor 模型?
【发布时间】:2015-11-21 01:54:19
【问题描述】:

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

结果相同。

【问题讨论】:

  • 帖子的重点是模型拟合没有错误,但是如果没有上面列出的拟合错误,保存的模型就无法运行。当已经发布的代码清楚地表明模型实际上是合适的时,该错误明确表示该模型不合适。相关代码已经贴出来了。

标签: python random-forest


【解决方案1】:

可能是文件扩展名错误,我尝试使用joblib.dump(rfClf, "models/train_model_6.m") 保存模型,它可以工作,你可以试试。

【讨论】:

  • 这不是答案。它应该作为评论发布在问题下
  • @infaustus,我认为它需要 50 声望才能在问题下发表评论,但是您可以尝试我的解决方案。
猜你喜欢
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多