‫欢迎回来｡
‫我们看的最后一个视频, 是如何使用随机搜索来调整模型的超参数｡
‫我们定义了一个空间或者字典, 包含了不同的超参数值｡
‫我们想试试随机搜索｡
‫CV随机联合收割机这些参数, 并使用不同的设置､ 不同的超参数构建分类器,
‫然后使用交叉验证对所有参数进行评估｡
‫或者我们可以改回10｡
‫我们可不想50个模特跑了｡
‫然后在尝试了十种不同的组合之后, 它发现最佳的参数是这组值｡
‫然后在评估它们之后, 我们发现它并没有真正做得像我们之前的模型一样好, 在那里我们只是用手搅拌｡
‫最后, 当你调整高参数时, 你可能会使用一个工作流程,
‫从手动开始, 然后在高参数空间中使用随机搜索CV｡
‫一旦你找到了一些非常好的超参数, 你可能会完成网格搜索｡
‫让我们来看看它的实际应用｡
‫所以5｡ 3.超参数整定, 带网格搜索CV｡
‫真漂亮｡
‫让我们看看我们的网格｡
‫所以我们现在的网格是你可能会注意到网格搜索曲线中有一个单词“网格”｡
‫我们现在的超参数网格就是这些值｡
‫随机搜索和网格搜索的关键区别在于随机搜索有一个参数, 叫做NITTA, 这就是我们在这里看到的｡
‫我们可以设置它来限制要尝试的模型的数量｡
‫所以在我们的例子中, 我们使用了10个｡
‫如果我们回头看一下, 这段代码的顶部, 为十个候选项中的每一个都折叠了五次, 总共是50/5.
‫随机搜索CV和网格搜索CV的关键区别在于网格搜索CV有点像暴力搜索｡
‫这意味着它将通过这里可用的每一个单一的组合｡
‫如果我们看一下, 这里有六个值｡
‫所以是六次, 五次, 二次, 三次｡
‫这里有六个参数｡
‫这里有五个, 这里有两个, 三个, 总共三个, 它会尝试540个不同的参数, 或者参数的组合｡
‫这是一个很大的, 然后交叉验证｡
‫时间到了五点, 所以2700个模型很多, 对吧？
‫这将需要大量的计算能力培训｡
‫一个模型可能需要足够长的时间, 但训练2700个模型, 特别是如果你要处理一个大数据集,
‫可能不适合你的笔记本电脑｡
‫你可能需要一台大电脑或者我们可以缩小搜索空间｡
‫让我们来看看它的实际效果｡
‫我的意思是, 我们也将创建网格, 使用更多的有限超参数空间｡
‫因此, 本质上只是减少了网格搜索必须经历的超参数的数量｡
‫让我们来看看它的实际效果｡
‫我们要做的就是复制这个｡
‫现在, 您将如何在实践中创建网格2？
‫我们可以复制粘贴它, 我们已经做了｡
‫我想把这些排列起来, 这样看起来都是复调的｡
‫我们走吧｡
‫现在我们可以复制粘贴然后随机删除这些｡
‫删除｡
‫我们可能不会那么做｡
‫所以我们已经通过了随机搜索XXV, 它通过了｡
‫假设我们像以前一样增加到50个不同的模型, 但在我们的例子中, 我们实际上只做了10个｡
‫我们可以采用这些参数｡
‫我们随机检索CV的最佳参数｡
‫并利用它们来影响网格搜索的运行｡
‫那就这么办吧｡
‫我们的最佳参数是262的平方根｡
‫那我们该怎么办？
‫去掉10个｡
‫留下500个, 把这两个拿掉｡
‫是的｡
‫最大深度为无, 因此我们可以将其保留为无｡
‫所以只有一个选择｡
‫然后对于平方根, 我们可以, 啊, 实际上保持它, 作为自动或平方根｡
‫然后我们还有什么｡
‫平均样本分割为6｡
‫我们可以去掉四个和两个, 然后我们可以做什么, 最小样本叶｡
‫所以我们可以把它作为一和二｡
‫我们做了什么？
‫我们所做的就是缩小了超参数的搜索空间｡
‫所以现在｡
‫记住我们有540种不同的组合｡
‫我们有什么？
‫所以我们有三次｡
‫一乘二乘一乘二｡
‫所以12, 然后交叉验证5次, 这样我们就可以使用KV参数进行调整｡
‫所以60对2700｡
‫所以这里的参数要少得多｡
‫那么, 我们在实践中如何做到这一点呢？
‫我们如何使用网格搜索CV来找到该空间中的最佳超参数？
‫好的, 和往常一样, 让我们从Skyline DOT模型选择､ 导入网格､ 搜索CV中查看它的运行情况,
‫我们还希望导入训练测试分割｡
‫我们可能已经有了｡
‫我们可以把它放在那里｡
‫随机种子｡
‫好极了｡
‫分开｡
‫实际上我们要做的就是把这段代码放到这里, 因为它和我们之前要用的代码完全一样｡
‫所以我们就拿这个吧｡
‫所以我们要改变一件事｡
‫快下来
‫好极了｡
‫因此, 我们使用与随机检索CV相同的数据集, 使其具有相同的分割｡
‫我们正在实例化一个随机的病毒分类器, 但这次我们要设置｡
‫网格搜索CV｡
‫妙格搜索履历｡
‫然后我们要把它装进去｡
‫网格搜索｡
‫现在就把它保存起来｡
‫这里有一个不同的参数｡
‫我想这个应该是param grid｡
‫它不会有一个ETA, 因为网格搜索就像蛮力｡
‫它尝试每一个组合, 我们希望它尝试我们的网格, 而不是网格1, 因为网格2的选项少了一些,
‫就像我们之前看到的那样｡
‫下面我们来看一下, 交叉验证是5倍, BOE等于5倍, 现在让我们来看看发生了什么｡
‫所以我们要导入网格搜索CV｡
‫我们已经创建了网格2, 这是一个不同超参数的精确搜索基础｡
‫不同的设置, 就像你在做你最喜欢的食物, 调整你的烤箱,
‫如果你把温度设置到400度, 那就太高了｡
‫所以如果它从180度开始, 然后它确实是, 好吧, 你可能会说,
‫为什么我要直接到500度或400度, 而我可以稍微跳到400度？
‫这就是为什么我们创建了网格2｡
‫我们已经基于我们的随机搜索CV或随机搜索CV找到的最佳参数或最佳超参数｡
‫那就开始吧｡
‫让我们使用网格搜索CV构建一个随机森林分类器｡
‫接下来我们再来一次｡
‫一样的东西｡
‫为12名候选人中的每一人试穿5次, 总共60次｡
‫现在Seavey要做的是网格搜索, 就像随机搜索一样｡
‫它将遍历所有这些不同的超参数, 并将它们传递给我们的随机森林分类器,
‫尝试每种不同的组合｡
‫最后当它完成的时候, 我们就可以去, 天哪, CLF最好的参数｡
‫好极了｡
‫所以网格搜索可能需要一点时间｡
‫简历这是需要记住的｡
‫这里的超级参数越多, 网格搜索的时间就越长｡
‫CV要运行, 因为它必须尝试这里的每一个超级参数组合｡
‫所以现在, 就像我们之前做的那样, 我们可以评估我们的网格搜索分类器,
‫用它来做预测, 然后用我们的评估函数来弄清楚它是怎么做的｡
‫那就这么办吧｡
‫如果我真的会去的话｡
‫天啊, 为什么？
‫Preds等于gs｡
‫CLF预测也将对测试数据进行预测｡
‫X检验, 然后我们去评估预测结果｡
‫GPS度量等于评估排列｡
‫我们的函数, 我们在之前的几个视频中定义过, 然后我们会说, 天哪, 为什么是Preds？
‫好极了｡
‫现在, 我们再次看到准确性略有下降｡
‫嗯嗯嗯
‫这正好说明了调整超级参数的过程有多复杂｡
‫好吧, 我知道了
‫这都是关于尝试和错误｡
‫你能做的就是回到楼上｡
‫您的工作流程可能是手动尝试一些设置, 就像我们刚才所做的那样｡
‫手动调谐高参数｡
‫这就是你可能会做的工作流程｡
‫用手试一下其中的一些｡
‫看看你是否能像我们一样用验证集找出一些东西, 然后尝试使用随机搜索进行一些高参数调整｡
‫CVE（中文）
‫在这种情况下, 你可以把这个数字增加到20或50左右, 或者任何你能找到的任意数字｡
‫同样, 这都是为了尝试找出哪种类型的参数更好｡
‫你甚至可以根据你在气旋模型文档中找到的超级参数来改变你正在搜索的网格｡
‫一旦你用随机搜索KV找到了一些好的超参数, 你可以把这些超参数,
‫这些最好的参数, 然后创建另一个网格来搜索, 就像我们在这里做的那样｡
‫在我们的例子中, 它并没有改善我们模型的指标, 但这是我们可能要开始进行更多实验的地方｡
‫尝试一些不同的其他指标, 尝试一些不同的其他混合参数｡
‫但是为了完整起见, 在尝试了几个不同的跳参数之后, 您可能会使用默认设置创建一个基线模型｡
‫你试过手动调整, 你试过随机搜索电视, 你试过网格搜索｡
‫你会想要比较你的模型｡
‫我们来比较一下｡
‫我们不同的模型指标｡
‫好极了｡
‫为此, 我们将创建一个数据帧｡
‫是这样｡
‫这就是为什么我们一直在从所有的, 所有的模型和我们的evaluate pred函数中返回字典｡
‫因此, 基线将是基线指标, 而CLF 2将是自指标｡
‫我们不需要他们的时候我就在这里｡
‫随机搜索是一个竞赛矩阵, 网格搜索是GS矩阵.
‫好极了｡
‫然后, 我们将比较指标, 这只是我们在这里实例化的数据框架, 以了解它的实际情况｡
‫好吧, 我们可能要搬家了｡
‫就在上面｡
‫这里会出现一个错误, 实际上是我们不需要的弯曲括号｡
‫绘制点条｡
‫图的大小等于十幕｡
‫让我看看｡
‫好极了｡
‫这将在一个空间中比较所有不同的分类模型指标｡
‫我们可以看到, 我们的基准模型是蓝色的｡
‫所以这一次, 它没有得到最好的｡
‫它更像是CLF 2和随机搜索之间的联系｡
‫精确度方面, CLF二号领先｡
‫在回忆中, 基线在前面, 在F1中, 基线和谱号2之间是平局｡
‫同样, 你可以调整这个图表, 使它更明显｡
‫这只是为了演示不同的指标｡
‫所以这是一种你不仅为自己, 也为你的队友所做的交流｡
‫或者, 如果您要向某个项目中的某个人报告, 则是向他们展示您尝试过的不同模型,
‫以及它们在不同分类指标上的表现差异｡
‫如果你在处理分类问题, 当然你也可以用同样的方法处理回归问题｡
‫而现在, 根据你所需要的项目, 将取决于哪个型号｡
‫所以, 假设你想要一个优化回忆的模型｡
‫在这种情况下, 您可能会使用基线模型, 或者如果您希望对基线模型进行建模, 优化精度,
‫您可能会选择对自己进行建模｡
‫如果这些指标都不适合你, 你可以继续尝试通过随机搜索或网格搜索找到一些更好的指标｡
‫现在, 我们终于了解到如何通过超参数调整来改进模型｡
‫再说一次, 这里有很多东西需要吸收｡
‫关键是要记住这是一个实验过程｡
‫通过超参数调整来改进模型没有成文的法律规定你怎么做, 但是｡
‫关键是要不断尝试｡
‫看看你能不能想出点什么｡
‫看看你是否能熟悉不同模型所具有的不同超参数, 比如随机森林分类器｡
‫只是提醒自己, 你做的第一个模型很可能不是最好的模型, 你会有｡
‫这是一个基准模型, 可以在此基础上进行改进, 因此建立了一个模型｡
‫我们试着改进它｡
‫假设你已经决定要专注于回忆或类似的事情｡
‫您可能希望导出模型, 以便在某种部署设置中共享或使用它｡
‫在下一节中, 我们将了解, 如果我们看一下这里的列表, 我们将介绍我们所涵盖的内容,
‫我们将了解如何保存､ 共享和加载模型｡
‫因此, 保存并加载已训练的模型｡
‫这样做的好处是, 您不必像我们在前几节中所做的那样重新训练模型｡
‫那就回去吧｡
‫查看我们介绍的超参数调整内容, 了解如何通过网格搜索改进模型超参数｡
‫试试随机搜索, 试试手动搜索, 我会在下一个视频中看到你｡