‫好了, 各位, 我希望你们和我一样兴奋｡
‫为什么？
‫因为我们已经到了最后冲刺阶段了｡
‫我们到第六个了, 保存并加载一个训练过的模型｡
‫我们已经完成了所有这些步骤｡
‫我们已经看到了如何通过超参数调整来改进我们的模型｡
‫假设我们已经改进了我们的模型,
‫我们很乐意与我们的同事或类似的人分享它, 或者导出它并保存它,
‫然后将它放在我们的一个应用程序中, 这样我们的客户可能会想要使用它, 可能会想要访问它的预测｡
‫基本上, 我们想把我们训练过沿着模型｡
‫我们已经得到了这些结果, 将其导出到文件, 这样我们就可以导入它并在其他地方使用它,
‫而不仅仅是在我们的Jupyter笔记本中｡
‫所以我们来创建一个标题6｡
‫保存和加载已训练的机器学习模型｡
‫真漂亮｡
‫我们有两种方法｡
‫所以有两种方法来保存和加载学习模型链｡
‫我们要介绍的第一个是Python的Pickle模块｡
‫第二个是作业库模块｡
‫让我们来看看如何用Pickle来做｡
‫所以第一件事就是进口咸菜｡
‫然后就｡
‫如果你想知道什么是泡菜, 你可以去蟒蛇泡菜, 一如既往｡
‫如果我们不确定什么东西是什么, 我们可以搜索它｡
‫Python对象序列化｡
‫所以如果你读到这篇文章, pickle模块实现了二进制协议, 用于序列化和分散化Python对象结构｡
‫在我们的例子中, 如果你想知道Python对象结构是什么, 在我们的例子中, python对象就是我们的模型｡
‫比如说, 如果我们要说奶酪分类器, 那么我们最满意的是我们的网格搜索参数模型｡
‫我们用网格搜索训练的随机森林分类器｡
‫如果我们想导出它, 这就是Python对象pickle可以帮我们做的.
‫那就这么办吧｡
‫让我们举一个例子来说明如何导出self, 它是python对象到pickle文件中｡
‫所以保存一个现有的｡
‫模型到文件｡
‫好的, 谢谢｡
‫为了达到这个目的, 我们要用泡菜垃圾桶｡
‫我们将把要保存到用例中的对象传递给它｡
‫CLF我们的网格搜索分类器, 然后你可以在这里命名它的东西｡
‫所以我们需要使用open函数｡
‫python的open函数处理文件的输入和输出｡
‫在我们的例子中, 我们将作为随机森林模型一｡
‫现在, 您可以随心所欲地使用这些名称｡
‫可能会有一些术语, 你决定与您的团队或类似的东西｡
‫这是你用来做模特的｡
‫但在我们的例子中, 我只是做了一些简单的事情, 点Pkl代表Pickle文件,
‫我们也传递了, 因为我们在写一个文件, 我们传递了参数WB, 代表正确的二进制, 所以如果我们点击shift和enter｡
‫真漂亮｡
‫这是要去保存｡
‫猫头鹰网格搜索模型用这个文件名到我们当前的工作目录｡
‫所以如果我们从这里上去, 如果我们去, 天哪, 随机｡
‫我们有两个随机数, 所以天哪, 随机森林｡
‫所以这是一个随机森林, 真的是随机的一个pkl.
‫您可以看到这里还有其他一些模型文件｡
‫Dot PCO, 这是我之前尝试过的, 这是我们刚开始创建的另一个,
‫我们在那里看到了一个通灵工作流｡
‫现在, 如果您已经导出了这些模型中的一些, 您可能希望将它们像模型文件一样放入｡
‫就像我们把数据放在一个数据文件里｡
‫这只是整理目录的一种方法, 但您可以看到我们刚刚保存在这里的目录｡
‫那是几秒钟前的事了｡
‫现在, 如果我们回来, 我们将如何加载？
‫好吧, 我们也可以和泡菜一起做｡
‫因此, 加载已保存的模型｡
‫所以我们要去加载泡菜模型等于泡菜负载｡
‫这里的优点是,
‫因为我们已经将模型保存到pickle文件中, 并且它存储在我们的目录中, 所以想要使用我们的模型的用户不必经历我们上面所做的所有训练步骤｡
‫他们可以直接访问模型, 并通过加载模型进行预测｡
‫我们可以在此处复制此文件名, 但我们只需要在GE的选项卡中键入它｡
‫我们使用制表符自动完成, 现在因为我们正在阅读一个文件, 所以我们传入参数RB来读取二进制文件｡
‫好极了｡
‫这已经加载到我们的保存模型中了｡
‫现在我们可以做一些预测来检验它｡
‫所以, 看看这个模型, 如果它真的有效, 如果我们保存它, 我们可以用它来做预测,
‫那么我们就在一个很好的地方｡
‫我们现在要做加载泡菜模型预测, 就像我们之前对自己做预测一样, 我们要运行这条完全相同的线,
‫但是用我们的做预测｡
‫选取模型对测试数据集的预测｡
‫好极了｡
‫然后我们调用赋值弗雷德函数并比较测试标签和pickle y Preds｡
‫这是什么？
‫发现输入变量的样本数不一致｡
‫嗯嗯嗯
‫我知道我们做了什么｡
‫数据不匹配｡
‫我们要做什么｡
‫是的｡
‫我相信, 如果我们只是注释掉这一行并重新创建, 我们就必须重新实例化我们训练和测试分割｡
‫这就是我们要做的｡
‫所以我暂时把这些行注释掉然后运行这个单元格｡
‫回来这里｡
‫我们把它装进去, 所以这里的错误, 我相信, 也许是错误的｡
‫我们的X测试已经在上面的某个地方被实例化了, 我们必须重新实例化它, 这样它才能被重置回正确的形状｡
‫现在我们可以通过比较来判断这个过程是否正确｡
‫如果我们比较原始的GPRS谱号预测, 这里的这些值, 如果我们复制这些值,
‫这些就是原始的网格搜索分类器指标｡
‫让我们来看看｡
‫这是我们加载的模型的指标｡
‫准确度, 78｡ 69.
‫相同的精度0｡ 74, 相同回忆0｡ 82例相同, F组为0｡ 78.
‫所以一样｡
‫这意味着我们的进口, 我们的储蓄, 我们的模型和重新进口它｡
‫所以加载它已经正确工作｡
‫这里的这些名字, 你可以随意更改｡
‫与加载的变量名相同｡
‫但这只是一个简单的示例, 说明如何使用Pickle将一个模型快速保存到文件中,
‫然后在以后需要时将其重新加载, 然后使用完全相同的已加载模型进行预测,
‫这些模型将获得与最初保存的模型完全相同的结果｡
‫在下一个视频中, 我们将看到如何执行相同的操作, 只是这次使用的是作业库｡