‫因此, 让我们开始探讨使用超参数调整来改进模型的不同方法｡
‫这里的第一个是手工制作的｡
‫我们来做个小标题5. 1手动调谐超参数｡
‫到目前为止, 我们已经讨论了如何处理训练和测试数据集｡
‫一个模型在训练集上进行训练, 它找到模式, 然后在测试集上进行评估｡
‫因此, 它使用这些模式, 但超参数调整引入了第三组, 验证集｡
‫如果我们看一下这里, 这是我们手动调整超级参数时的样子｡
‫如果我们从100个病人的记录开始, 在我们的心脏病问题的情况下, 现在再次, 这可能会改变,
‫这取决于你正在处理的问题｡
‫我用了一百这个数字因为它很容易被想象出来｡
‫这是我们的初始数据, 我们可以把它分开｡
‫这就是我所说的三个不同的集合｡
‫所以我们分开, 我们可能会用70到80%｡
‫因此, 70条患者记录作为培训分割, 我们可能使用10-15%作为验证分割, 我们可能使用10-15%作为测试分割｡
‫当然, 您可以调整这些数字｡
‫这些只是一些常见的数字, 你会看到使用｡
‫所以很自然地, 这个模型会被训练｡
‫这些是我们以前见过的｡
‫通常在没有验证集的情况下, 我们的模型将在这些集上进行评估｡
‫但现在, 因为我们有一个验证集, 所以我们将在这里调整模型设置, 即超级参数｡
‫在验证分割上进行调整, 然后最后像正常一样在测试分割上对模型进行评估｡
‫如果你还记得刚开始的时候, 机器学习中最重要的概念是三个集合｡
‫这是刚开始的时候｡
‫101.第一季剧情介绍
‫训练集类似于说您正在学习大学课程, 并且正在学习课程材料｡
‫验证集是你测试你的知识一点点, 看看你需要调整｡
‫所以你会从你的教授那里拿到练习题, 你试了一下, 然后你会说, 哦, 哇, 我在第一,
‫第二, 第四题上做得很糟糕.
‫也许我需要调整一下我处理这件事的方式｡
‫然后你再做一次模拟考试｡
‫一旦你在模拟考试中提高了你的技能,
‫你会感到有点自信, 你最终会在期末考试中真正评估自己, 也就是测试集｡
‫那么我们如何用代码来实现呢？
‫让我们回到我们的笔记本｡
‫用手调谐超参数｡
‫让我们做三套｡
‫培训､ 验证和测试｡
‫所以我们要做的就是提醒自己get参数或者随机森林分类器.
‫基线参数｡
‫这些都是基线参数｡
‫好吧, 我会的
‫我们可以调整的模型设置｡
‫现在, 事实上, 我们要调整哪些？
‫在阅读了随机森林的文档后,
‫你可以对任何机器学习估计或心理贷款模型进行这样的操作, 我们开始了解如何调整每个设置｡
‫即使有一些模型, 也会有一些节点在不同的超参数上｡
‫通灵, 学习, 暗示, 改变｡
‫这就像一个｡
‫要不要先换一换试试｡
‫在阅读了这些内容之后, 在阅读了这个范围之后, 在我们的例子中,
‫我们将尝试调整以下内容｡
‫所以我们需要最大深度｡
‫实际上, 我们会把它们放在后刻度中, 因为我们知道它们是代码最大步长｡
‫最大功能｡
‫平均样本数｡
‫如果这些都没有意义, 请记住, 所有这些的定义都在任何模型的文档中｡
‫如果我们来到这里,
‫意味着样本在叶节点上留下了最少的样本数量, 如果你深入查看随机森林上的一些资源, 你可以更深入地了解什么是叶节点｡
‫但现在我们只是专注于如何调整｡
‫机器学习模型的超参数意味着样本叶｡
‫平均样本分裂和估计是美妙的｡
‫这些是我们要调整的高参数｡
‫现在, 我们将使用与前面相同的代码, 只是这次我们需要创建一个训练､ 验证和测试样条｡
‫我们就用这些这些分叉｡
‫因此, 训练分割将使用70%的数据创建｡
‫验证集和测试集各包含15个, 我们将得到一些基线结果｡
‫我们差不多已经得到了它们, 但我们将再做一次, 得到一些基线结果,
‫然后我们将看到如何手动调整模型类型的参数｡
‫既然我们要评估几个模型, 我认为创建一个评估函数是很重要的｡
‫所以这就是你可能想做的｡
‫不管你在做什么模型, 你都是在创建函数｡
‫如果你知道你想做一件事不止一次｡
‫因此, 它省去了编写大量代码的工作｡
‫但是, 这可能与我们过去所看到的有点不同｡
‫好吧, 我知道了
‫我们知道我们喜欢手写一切｡
‫我们只在这里留下一个小的docstring｡
‫它对y true标签与y pred标签进行评估比较｡
‫现在, 正如我们在评估部分所看到的,
‫评估机器学习模型的主要工作是将其预测与真实标签进行比较｡
‫这就是这个函数要做的｡
‫因为我们使用的是分类器, 所以我们需要准确度, 准确度, 得分, 真实度, 价差｡
‫我们还需要精确性｡
‫现在我们可以注意一下我们的分类模型, 因为如果我们在回归模型上使用这个评估点差,
‫我们将输入分类指标, 我们将得到误差,
‫因为回归模型预测的结果与分类模型预测的精度不同｡
‫然后我们需要回忆率, 当然, 等于回忆分数｡
‫现在, 你可以调整一下, 评估弗雷德的函数, 以满足你的需要｡
‫但我只想介绍一些我们在分类模型中介绍过的最常见的指标, 以及在所有分类模型中需要注意的一些事项,
‫Y点差,
‫然后我们将创建一个字典, 它可以返回预测, 这样我们就可以将它们与其他预测进行比较｡
‫后来一发准｡
‫我们会保留两位小数｡
‫是的｡
‫精确度｡
‫舍入精度｡
‫来｡
‫现在, 永远记住, 如果这看起来很多, 那是因为, 首先, 它是一种很多在一个打击｡
‫第二件事是, 我已经有了相当多的实践, 所以我天生就知道该用什么｡
‫同样, 我一直在学习, 但我只是在构建这些特定类型的系统时进行了一些练习,
‫这些模式一次又一次地出现｡
‫我们去打印｡
‫我们只想给予我们一点打印出来的东西｡
‫啊, 我们要准确｡
‫时间是100, 我们只需要两位小数｡
‫那就够了｡
‫然后我们会去同样的事情, 如果精度｡
‫这可以是精确的｡
‫我们不需要乘以100｡
‫只能保留两位小数｡
‫好吧, 我们需要一个绳尾｡
‫打印得很好｡
‫然后我们去召回｡
‫这是一个很大的类型出来开始, 但因为我们将能够重用它, 它将保存我们的轨道｡
‫最后我们要打印｡
‫如果一个学校｡
‫我们成功了｡
‫我们终于成功了｡
‫非常努力｡
‫我们走吧｡
‫最后, 我们要返回dipped度量｡
‫这是怎么回事？
‫本质上, 这个函数只是从我们的分类模型中取一些真标签和一些预测标签｡
‫我们从这里的字符串知道这个｡
‫它将在这里计算不同的评估函数, 然后它将返回一个度量字典, 这样我们就可以把它保存下来供以后使用｡
‫它也会打印出一些指标｡
‫所以我们一运行这个函数就得到一个打印输出｡
‫所以它只是我们分类模型的一个评估函数｡
‫好极了｡
‫我会像往常一样把笔记本保存在这里｡
‫现在, 我们如何准确地创建这些列车验证和测试拆分？
‫我们之前见过的列车测试分离函数, 还记得这个吗？
‫列车要分裂了｡
‫所以这个函数只返回, 训练分裂, 矩阵数组到随机训练和测试子集｡
‫所以这个只分为训练集和测试集｡
‫因此, 我们需要做的是手动将数据拆分为训练验证集和测试集｡
‫所以才这样做｡
‫我们可以的｡
‫我们如何才能做到这一点？
‫因为我们的数据是在一个数据框中｡
‫心脏病｡
‫我们应该可以用一些好的老数学和索引来做｡
‫让我们看看我们会怎么做｡
‫因此, 在Skyline中, 我们将首先导入模型, 尽管我们已经实例化了一个随机森林分类器｡
‫我们走吧｡
‫用电磁脉冲随机播种然后我们会打乱数据｡
‫我们为什么要在这里打乱数据？
‫如果我们要分成列车验证和测试｡
‫我们想把它混合起来｡
‫确保它不只是一样的｡
‫这些唱片是按照它们进来的顺序来的｡
‫如果我们使用切片来创建列车验证和测试线, 我们需要确保所有这些记录都是混乱的｡
‫所以这就是我们要做的
‫我们可以使用PANDAS示例函数对其进行混洗｡
‫我们将对100%的数据执行frac等于1｡
‫这只是要取心脏病的样本｡
‫这是随机的, 然后将心脏病数据帧重新分配到其正常变量｡
‫所以它会随机取一组行作为样本, 然后把它赋值给变量a. k､ a.一个
‫打乱数据｡
‫现在, 现在数据已经被洗牌了, 将拆分成x和Y｡
‫事实上, 我们可以把它留给心脏病｡
‫这主意不错
‫X等于｡
‫这一次, 我们需要对心脏病进行洗牌, 然后将“目标”列放在这里｡
‫这段视频有点拖沓, 但这是一个重要的概念, 对吗？
‫我们就在这里看看｡
‫这一切都是值得的, 因为我们将能够改善我们的模型使用低温调整,
‫分裂数据验证和测试集｡
‫好极了｡
‫于是火车开了｡
‫我们要怎么做？
‫我们需要创建一个可以用于切片的数字｡
‫所以我们需要70%的数据长度｡
‫所以你看到这里发生了什么｡
‫试着分开｡
‫我们你需要一个号码｡
‫我们需要70%｡
‫所以0｡ 7倍的心脏病的长度洗牌, 这将是70%的数据｡
‫然后我们需要一个有效的分割｡
‫这将是｡
‫你还记得吗？
‫你还记得什么是分裂吗？
‫百分之十五｡
‫我们说好的｡
‫好极了｡
‫所以我们可以用同样的方法来做｡
‫这将是列车分裂, 因为我们要索引｡
‫我们要剩下的15%｡
‫所以列车分裂加0｡ 515.
‫我们的心脏病的长度洗牌｡
‫数据框｡
‫这是15%的数据｡
‫好极了｡
‫所以X列, y列就是X数据｡
‫上到火车分叉处｡
‫以及为什么数据会在火车上分裂｡
‫很好, 然后ex有效, y有效, 对不起, 是从列车分裂到有效分裂的x数据｡
‫同样的, y也是从列车分裂中得到的｡
‫到有效拆分｡
‫然后我们将得到X测试, y测试是从有效分割开始的X数据｡
‫那么剩下的数据｡
‫然后为什么从有效分割开始｡
‫到目前为止, 这一点已经失去了｡
‫让我们看看发生了什么｡
‫好了, 我们走吧, 莱恩, 打印出来.
‫火车前, 然后我们希望Len前有效｡
‫然后我们要镜头前测试｡
‫好吧, 我会的
‫因此, 训练集有70%的数据, 也就是212行｡
‫验证集有46行, 占数据的15%, 测试集有46行｡
‫这是15%的数据｡
‫这里有不同的数量, 尽管它们都是15%, 因为我们已经使用了,
‫在心脏病洗牌数据集中, 我们有奇数个样本｡
‫所以在某个地方会有一个溢出｡
‫这是完全没有问题的｡
‫好了, 现在我们要分开了｡
‫我们可以做KLF, 我们将实例化一个随机森林分类器｡
‫现在, 因为我们没有在这里传递任何东西, 所以它将使用基线参数对其进行实例化｡
‫如果我们执行CLF, 则会得到参数｡
‫哦, 这不是一个属性｡
‫这是一个函数｡
‫因此, 不需要传递任何信息到这里, 我们的随机森林分类器, 并使用基线参数实例化随机农场分类器,
‫也就是这个｡
‫这就是我们想要的, 因为我们想做一些基线预测｡
‫所以我们去看左飞腾｡
‫我们会像往常一样把它拟合到训练数据上, 然后我们会做出预测｡
‫所以y传播等于自我预测｡
‫不, 我们将对验证数据进行预测, 因为我们回到这里, 我们希望根据验证拆分来调整模型｡
‫这就是我们的指标所基于的, 我们将首先创建一个基线指标,
‫这是通过在验证分割上运行我们的评估函数来实现的, 然后我们将调整超参数, 并在验证分割上再次尝试我们的模型, 看看它们的比较结果｡
‫我们来看看这里｡
‫所以要做出预测｡
‫我们称之为基线预测, 然后在验证集上评估分类器｡
‫下面我们来看看基准指标｡
‫现在, 我们的评估函数将派上用场, 度量等于评估价差, y有效, 看看我们是如何通过的｡
‫验证集和Preds的原因｡
‫然后, 我们要进行基准指标｡
‫好吧, 我们得到了什么？
‫局部变量精度｡
‫参考之前的｡
‫哦, 我的天
‫这就是我们错过的｡
‫这就需要再从这一点上进行准确性评分｡
‫它现在做得很糟糕｡
‫这是怎么回事？
‫准确点22.
‫我们做对了吗？
‫哦, 我们走吧｡
‫所以我们用了原版｡
‫看, 就是这样｡
‫我们需要使用心脏病混洗, 因为否则我们的模型预测的是原始标签, 而不是我们的混洗标签｡
‫这就是我们错过的一切｡
‫我们走吧｡
‫喔!
‫所以我们在这里得到了这个警告, 估计的值, 会从, 0, 反转改变｡
‫二十到一百｡ 22.
‫这是我们的基准指标｡
‫现在, 我们已经创建了一个系列验证和测试分割｡
‫我们已经实例化了模型, 就像我们以前做过的那样, 我们在这里将它拟合到训练数据上｡
‫然后, 我们评估了验证集的基线参数､ 基线超参数, 并获得了这些指标｡
‫所以如果我们试图改善我们的结果, 如果我们试图调整一个模型的超参数｡
‫这些在我们的随机森林中是手工制作的, 因为这就是这个部分｡
‫手动调谐更高的参数｡
‫我们将如何做到这一点？
‫让我们将此警告作为更改超级参数的示例｡
‫我们换衣服吧
‫同样, 如果你使用通灵贷款0｡ 2､ 两个或以上, 就不会得到这种警告｡
‫但既然我们收到了这个警告, 我们要试着调整｡
‫我们的超参数会改变我们的估计值, 就是这个｡
‫我们将把它从基线10改为100, 看看我们在验证集上是否得到不同的分数｡
‫创建一个随机种子｡
‫42.第四十二章
‫我们要做的是创建第二个分类器, 用不同的超参数, 因为记住｡
‫实例化我们的随机森林分类器｡
‫什么也没传递｡
‫使用分类器自带的基线超参数实例化分类器｡
‫所以, 当烤箱从盒子里拿出来时, 你可以使用烤箱的预定义设置来烹饪你最喜欢的菜肴｡
‫这些分数对我们没什么帮助｡
‫我们想要一个更好的模型｡
‫我们将创建CLF 2, 我们将调整超级参数,
‫就像你调整烤箱一样, 尝试改进你最喜欢的美味烤鸡｡
‫也许你正在准备一个盛大的聚会, 你所有的朋友都要过来, 你已经答应他们一个伟大的菜,
‫所以你试图完善它｡
‫这就是我们正在用机器学习模型做的｡
‫同样的, 同样的数据拟合在训练数据上, 但这次我们得到了CLF 2, 它使用的估计值是100,
‫而不是10｡
‫现在, 我们可以对这里的所有功能尝试不同的设置, 我们将尝试并调整这些设置｡
‫但我们可以从一个开始, 看看它的例子, 然后我们再去做预测｡
‫那么为什么普雷斯也会这样呢？
‫因为我们用CLF对CLF来预测｡
‫X有效｡
‫我们在做和这里一样的事情｡
‫基线预测位于验证集上, 现在使用不同的超参数进行预测｡
‫在相同的数据上｡
‫所以不同的模型, 相同的数据｡
‫现在我们来评估第二个分类器｡
‫CEO留下了两个指标, 我们再次使用了我们之前创建的估值函数,
‫这样调用它可以节省很多代码｡
‫好了, 现在我们来看看｡
‫啊, 你好
‫好吧, 我会的
‫现在, 如果我们使用我们的模型附带的基线超参数进行比较, 我们可以看到哪些不同之处？
‫我们所改变的只是一个等于100的估计｡
‫我们已经调整了模型上的一个刻度盘｡
‫因此, 就像调整烤箱上的一个表盘一样, 我们可以看到同样数据的准确性略有提高｡
‫因此CLF 2的精度略高｡
‫它的精确度更高｡
‫但较低的回忆率和相同的f一分｡
‫嗯嗯嗯
‫好吧, 我会的
‫这给了我们一个小小的暗示, 也许如果我们继续使用不同的高参数,
‫我们一直试图手动调整它们｡
‫我们希望最终能不断改进这些指标｡
‫那你觉得我们下一步会怎么做
‫如果我们从这里上去, 也许我们会尝试改变最大深度｡
‫那么, 默认的最大深度是多少？
‫我们在这里找到的｡
‫最大深度为无｡
‫也许我们可以看一下文档, 看看max length可以使用的不同变量, 它可以使用整数,
‫也可以不使用｡
‫默认值为none｡
‫树的最大深度, 我们做了研究, 阅读了文档, 我们看到了一些不同的最大深度值｡
‫然后我们回到我们的模型, 也许我们可以创建一个谱号3等于随机森林分类器｡
‫这一次, 我们将保持一个估计值, 因为相同的等于100, 然后我们将改变最大深度从零等于十｡
‫现在就去
‫这个数字不是我编的｡
‫我做了一些研究, 阅读了文档, 并找到了不同的想法, 最大深度, 然后我们可能会做同样的事情,
‫我们已经在这里做了｡
‫评估我们的第三个分类器, 正如你可能已经猜到的,
‫或者你可能已经想到的, 如果我们手动检查和调整所有这些, 手动调整所有的旋钮, 那将需要相当多的工作｡
‫对不对？
‫所以就像在真实的生活中完善你的菜一样, 比如你在做最喜欢的鸡肉菜, 每个人都来吃晚饭,
‫你试图调整烤箱的设置｡
‫你可能要经历一些反复试验, 对吧？
‫你可能只做了一次就没那么好吃了｡
‫到了第十次, 你就开始变得很好了｡
‫但这可能需要更长的时间, 因为我们正在尝试做的事情,
‫编写代码, 如果我们有所有这些不同的设置, 试图改变这些, 试图找到最好的设置, 这可能需要比我们现有的时间长得多的时间｡
‫规则是用密码写的｡
‫不要重复你的话｡
‫所以你可能已经猜到心灵学习有一种方法, 一种内置的方法可以为我们做到这一点｡
‫尝试一系列不同的设置, 这就是随机搜索保存, 我们将在下一个视频中进行介绍｡
‫这个已经太长了, 但这里的主要要点是, 当我们调整模型的超级参数时,
‫你可以把训练集想象成课程材料, 你在那里学习基础数据,
‫这就是训练集｡
‫然后在模拟考试中, 你会精炼你所知道的｡
‫因此, 您已经了解了我们模型中的所有基线模式｡
‫然后使用验证集, 我们调整设置｡
‫因此, 我们正在完善模型知道什么, 它如何学习不同的东西之前, 我们在期末考试中测试自己｡
‫所以换了一个｡ k､ a, 然后在测试集上评估模型｡
‫现在, 别担心｡
‫如果您感到有点不知所措, 请回顾一下我们编写的代码｡
‫你看
‫您可以尝试自己调整几个不同的参数, 但如果没有, 也不用担心｡
‫在下一个视频中我们将看到如何在通灵中使用模块｡
‫学习为我们尝试不同的超参数｡