joblib 保存训练好的模型并快捷调用(附源数据)

在这里插入图片描述
用已知数据集训练出一个较为精准的模型是一件乐事,但当关机或退出程序后再次接到 “ 用新的格式相同的数据来进行预测或分类 ” 这样的任务时;又或者我们想把这个模型发给同事并让TA用于新数据的预测…

难道又要自己或他人重复运行用于训练模型的源数据和代码吗?

在这里插入图片描述

所以这篇推文将展示如何仅用短短的两行代码,便能将优秀的模型下载并加载用于新数据的简便快捷的操作,让效率起飞😀

注:本文数据与源代码可空降文末获取~


joblib 下载/加载最佳模型

下载最佳模型

反复调优后,我们通常能够获得一个相对精准的模型。常见的做法是将其保存在一个变量中用于后续的预测。这里以往期推文为例:原理 + 代码 | 深入浅出随机森林实战(附源数据)
在这里插入图片描述
得到相对最优模型后,我们便可用变量将其存起来并进行预测

# 将最佳模型存储在变量 best_est 中
best_est = rfc_cv.best_estimator_

在这里插入图片描述
当出现文章开头的问题时,重新运行一遍"best_est = rfc_cv.best_estimator_"这行前的所有代码显然是很不明智的。这个时候我们便可以通过 sklearn 的 joblib 包来把我们训练好的模型下载成可执行的代码文件(拓展名为 .m)供后续使用。

from sklearn.externals import joblib
# joblib 中的 dump 函数用于下载模型
joblib.dump(value=best_est, filename='mybest_dt_model.m')

仅仅两行就搞定,接着我们便能看到当前目录出现后缀为 .m 的文件~


加载模型并用于预测

现在楼上的运营部那个懂一点点 Python 的同事已经收到了我发给TA的 m 文件,现在TA只需要一行代码就可将其加载出来,而后便可愉快的使用我训练好的模型了

# 加载模型
model = joblib.load(filename='mybest_dt_model.m')

在这里插入图片描述


小结&注意

本文展示了如何通过 joblib 的短短三行代码便将自己的心血下载成可执行文件供自己或别人后续使用,但这其中也有一些值得注意的地方:

  • 加载下载好的模型用于预测时,用到的数据的格式应与训练该模型时的一致(变量个数、名称与格式等)。

  • 在从sklearn.externals引入joblib函数时,常会出现如下报错:from sklearn.externalsimport joblib ImportError: cannot import name ‘joblib’,通常joblib导入不成功时主要是sklearn版本的问题,我们可以先卸载原有的sklearn,pip uninstall joblibscikit-leran sklearn,再安装指定版本的sklearn,pip install Scikit-learn==0.20.4 即可。

今天就先到这里,我们下次见😀

注:相关数据源和代码(python,Jupyter Notebook 版本 + 详细注释)已经整理好,在公众号 “ 数据分析与商业实践 ” 后台回复 “ joblib ” 即可获取~~

在这里插入图片描述

调用已经训练好的随机森林模型进行预测并保存为 CSV 文件,你可以按照以下步骤进行: 1. 加载模型:使用 joblib.load() 函数从文件中加载训练好的随机森林模型,或者直接使用已经训练好的模型对象。 2. 准备输入数据:将要预测的数据转换为与模型期望的输入格式相同的数据。这通常需要对数据进行预处理、归一化或特征提取,以及将数据转换为 NumPy 数组或 Pandas DataFrame。 3. 进行预测:使用模型的 predict() 方法对输入数据进行预测,并将预测结果保存到一个新的 Pandas DataFrame 中。 4. 将预测结果保存为 CSV 文件:使用 Pandas 的 to_csv() 方法将预测结果保存为 CSV 文件。 下面是一个简单的示例代码,演示如何使用 Scikit-learn 训练好的随机森林模型进行预测,并将预测结果保存为 CSV 文件: ``` python import joblib import pandas as pd # 加载模型 model = joblib.load('random_forest_model.pkl') # 准备输入数据 X_test = pd.read_csv('test_data.csv') # 进行预测 y_pred = model.predict(X_test) # 创建包含预测结果的 DataFrame results = pd.DataFrame({'有机质': y_pred}) # 将结果保存为 CSV 文件 results.to_csv('predictions.csv', index=False) ``` 在这个示例中,我们使用 joblib.load() 函数从文件中加载训练好的随机森林模型。然后,我们使用 Pandas 的 read_csv() 方法加载测试数据集,准备输入数据 X_test。接下来,我们使用模型的 predict() 方法对输入数据进行预测,并将预测结果保存到一个新的 Pandas DataFrame 中。最后,我们使用 Pandas 的 to_csv() 方法将预测结果保存为 CSV 文件,其中 index=False 表示不保存行索引。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值