‫第四部分.
‫这是建模及其比较的最后一部分｡
‫这里想知道的是我们的模型在真实的世界中的表现如何｡
‫因此, 在您通过超参数调整对模型进行了调整并提高了性能之后,
‫现在是时候看看它在测试集上的表现了｡
‫测试集就像是机器学习模型的期末考试｡
‫如果您已经正确地创建了数据拆分, 那么它应该给予您模型在部署到生产环境中后将如何执行｡
‫这意味着面向客户, 而不仅仅是在您的本地计算机上｡
‫由于您的模型从未在测试集中看到过数据, 因此在测试集中评估模型是查看其泛化效果的好方法｡
‫请记住, 概括起来,
‫我的意思是适应它以前没有见过的数据, 比如我们的心脏病预测机器学习模型在对一个病人是否患有心脏病进行分类时,
‫如何对一个不在我们原始数据集中的病人进行分类｡
‫一个好的模型在训练集､ 验证集和测试集上会产生类似的结果, 并且从训练集和验证集到测试集,
‫模型的性能略有下降的情况并不少见｡
‫例如, 您的模型在定型数据集上可能达到98%的精确度, 而在测试集上可能达到96%的精确度｡
‫您应该担心的是, 训练集的性能是否显著高于测试集, 也就是所谓的不适合｡
‫而如果测试集的性能高于训练集的性能又称为过拟合｡
‫过拟合和不拟合的两个例子都不能很好地推广, 这是我们不希望的｡
‫理想的模式出现在适居区｡
‫正好合身｡
‫不太好, 但也不太差｡
‫你看这里这个机器学习模型, 如果这是你的数据, 这些绿色的数据点, 这条线,
‫它有点符合形状｡
‫但这会被归类为装配不足｡
‫这不是我们想要模型做的｡
‫这边的这个, 它很好地拟合了所有的数据点, 但是它太接近了｡
‫这几乎是一个过于完美的模型｡
‫只是在他们之间蜿蜒而行｡
‫所以这个例子意味着模型已经很好地学习了这个数据集中的模式｡
‫这就像在真正参加期末考试之前看到期末考试一样｡
‫这里是金发姑娘区｡
‫好吧, 我知道了
‫这是一个反复的过程, 在这个过程中, 这个金发区就像一个平衡的模型｡
‫我们真的依赖于您的数据和您试图解决的问题｡
‫这就是为什么, 这是一个反复的过程, 找到这个平衡区.
‫现在, 在处理不同的机器学习问题方面积累了一些经验和实践之后,
‫您将能够开始判断您的模型是过拟合还是欠拟合｡
‫现在有几个原因可以发生不拟合和过拟合, 但主要的是数据泄漏和数据不匹配｡
‫当一些测试数据泄漏到定型数据中时, 就会发生数据泄漏,
‫这通常会导致过度拟合或模型在测试集上的表现优于定型数据集｡
‫这就像,
‫请记住, 这就像如果你要看期末考试或者每个人都要把期末考试当作练习考试, 你的机器学习模型刚刚学习了它将要测试的内容｡
‫所以当它开始建模的时候, 它只是学得太好了, 它开始像这样拟合数据｡
‫这就是为什么正确地进行拆分并确保机器学习模型训练仅在训练数据集上进行非常重要｡
‫验证和模型调整仅在验证或定型数据集上进行｡
‫并且测试和模型比较发生在测试数据集上｡
‫我还记得一些不同的方法｡
‫仅使用定型集和测试集, 并对定型集进行模型优化｡
‫但是测试总是保持不变｡
‫这就像你上大学的时候, 你在上一门课｡
‫你要确保期末考试是一种指示你对事物理解程度的指示｡
‫机器学习的测试数据集也是如此｡
‫测试数据集用于指示您的模型在真实的世界中的泛化能力｡
‫所以你想避免数据泄露｡
‫当您测试的数据与您训练的数据不同时, 就会发生数据不相符的情况,
‫例如训练数据与测试数据的功能不同｡
‫与训练数据相比, 具有这种不匹配可能导致模型在测试数据上表现不佳｡
‫这就是为什么必须确保训练所使用的数据类型与测试所使用的数据类型相同, 并且尽可能接近未来应用程序中使用的数据类型｡
‫其他方法来打击不适合包括使用一个更先进的模型｡
‫这可能意味着一个完全不同的模型或增加当前模型上的超级参数的数量｡
‫记住, 当我们在烹饪鸡肉时, 我们可能会通过调高烤箱的温度来改变烤箱的一个超参数｡
‫这可能是你可以在机器学习模型上做的事情, 而不是只使用你可能使用的神经网络中的两层｡
‫我们将在未来的项目中看到更多这方面的内容｡
‫您还可以减少尝试建模的特征的数量｡
‫也许您的数据包含太多的要素, 而您使用的模型难以在其中找到模式｡
‫最后, 您可以训练模型更长时间｡
‫有时候, 模型的训练或学习时间会比您预期的要长｡
‫您的一个实验可能涉及较长的训练阶段｡
‫以减少过拟合｡
‫有用的解决方案是收集更多的数据｡
‫更多的数据将为模型提供更多的潜在模式, 从而降低模型找到所有模式的可能性｡
‫或者你可以试着用一个不太先进的模型｡
‫这是不寻常的, 但它的可能性｡
‫您使用的模型太善于学习, 它对数据的建模也太好了｡
‫请注意模型执行得太好可能导致不正确的预测｡
‫请记住, 没有一个模型是完美的, 所以一定要像检查糟糕的结果一样检查好的结果｡
‫最后, 在比较两个不同的模型时, 一定要确保你是在比较苹果和苹果,
‫桔子和桔子｡
‫模型二接受数据训练.
‫第一组和第三组的数据对比, 第一组｡
‫在比较的过程中, 你要确保你不仅考虑到最终的结果, 而且考虑到达到目标所需要的东西｡
‫如果模型二用1/2在93处做出预测｡ 1%的准确度｡
‫模型3需要4秒做出94的预测｡ 7准确性｡
‫额外的3%准确率值得额外的3秒预测时间吗？
‫现在, 这将取决于目标是什么, 但如果您正在优化预测时间, 您希望尽可能快地进行预测｡
‫您可能会选择模型2, 因为它的预测速度比模型3快四倍, 但精确度较高｡
‫同样, 这将根据您想要使用的应用程序或生产用例的类型而有所不同｡
‫但是, 需要记住的不仅仅是模型的表现如何, 这也是选择应该使用哪一个模型的原因｡
‫从这节课中你要记住的几件事避免过度拟合和不拟合｡
‫你想要一个趋向于通用性的模型｡
‫这就像当你做你的练习考试, 如果你看到了期末考试, 你可能只是成为一个专家记忆机器,
‫而不是一个人谁可以使用他们的知识在真实的世界中｡
‫不惜一切代价保持测试集独立｡
‫当您分割数据时, 您想要有一个定型集, 然后舍弃测试数据集并将其锁定｡
‫一旦你的模型被训练好了, 你就可以打开测试数据集, 你可以解锁它,
‫把它从保险箱里拿出来, 看看你的模型在比较模型时的表现｡
‫比较苹果和苹果, 有模型一和模型二的数据, 集一和数据集一｡
‫您希望确保所比较的两个模型是在相同的环境中创建的, 以便可以确保所比较的是合法的比较｡
‫最后, 一个最佳性能指标并不等于最佳模型｡
‫请记住, 在我们的示例中, 您可能正在优化预测时间｡
‫因此, 虽然一个模型, 使一个更快的预测, 并没有得到高精度的是另一个模型,
‫需要一点时间｡
‫这对你来说可能无关紧要, 因为你需要的是能尽可能快地预测的东西｡
‫哇, 这是很多, 但我们会看到更多的这在整个过程中的行动｡
‫您还将在整个机器学习职业生涯中使用它, 因此记住这些概念非常重要｡
‫让我们进入下一步, 看看我们如何将之前的所有步骤整合到第六步实验中｡