deephub|保证评估模型的稳定性,5种常用的交叉验证技术


deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
Kaggle的数据科学黑客大会最有趣和最具挑战性的一件事是:在公共和私有的排行榜中 , 努力保持同样的排名 。 当我的结果在一个私有的排行榜进行验证时 , 我就失去了共有的排名 。
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
你有没有想过是什么原因导致了这些排名的高差异?换句话说 , 为什么一个模型在私有排行榜上评估时会失去稳定性?
在本文中 , 我们将讨论可能的原因 。 我们还将学习交叉验证和执行它的各种方法 。
模型的稳定性?总是需要验证你的机器学习模型的稳定性 。 换句话说 , 你不能把这个模型与你的训练数据相匹配 , 并预测它的未来日期 , 然后希望它每次都能准确地给出结果 。 我之所以强调这一点是因为每次模型预测未来的日期 , 它都是基于看不见的数据 , 这些数据可能与训练数据不同 。 如果训练模型不能从你的训练数据中捕捉趋势 , 那么它可能会在测试集上过度拟合或不拟合 。 换句话说 , 可能会有高的方差或偏差 。
让我们通过一个例子来进一步了解模型的稳定性 。
在这个例子中 , 我们试图找出一个人购买汽车与否的关系 , 这取决于他的收入 。 为此 , 我们采取了以下步骤:
我们用一个线性方程建立了买车与否和个人收入之间的关系 。 假设你有2010年到2019年的数据 , 并试图预测2020年 。 您已经根据可用的列车数据训练了您的模型 。
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
在第一个图中 , 我们可以说 , 该模型捕捉到了训练数据的每一个趋势 , 包括噪音 。 该模型的精度非常高 , 误差极小 。 这被称为过拟合 , 因为模型已经考虑了数据点的每一个偏差(包括噪声) , 而且模型太敏感 , 只能捕获当前数据集中出现的每一个模式 。 正是由于这个原因 , 可能会产生高偏差 。
在第二个图中 , 我们只是找到了两个变量之间的最优关系 , 即低训练误差和更一般化的关系 。
在第三个图中 , 我们发现该模型在列车数据上表现不佳 , 精度较低 , 误差%较大 。 因此 , 这种模式不会有很好的表现 。 这是不合适的典型例子 。 在这种情况下 , 我们的模型无法捕捉训练数据的潜在趋势 。
在Kaggle的许多机器学习比赛中常见的做法是在不同的模型上进行迭代 , 以寻找一个性能更好的模型 。 然而 , 很难区分分数的提高是因为我们更好地捕捉了变量之间的关系 , 还是我们只是过度拟合了训练数据 。 为了更多地了解这一点 , 机器学习论坛上的许多人使用了各种验证技术 。 这有助于实现更一般化的关系 , 并维护模型的稳定性 。
交叉验证是什么?交叉验证是一种在机器学习中用于评估机器学习模型性能的统计验证技术 。 它使用数据集的子集 , 对其进行训练 , 然后使用未用于训练的数据集的互补子集来评估模型的性能 。 它可以保证模型正确地从数据中捕获模式 , 而不考虑来自数据的干扰 。
交叉验证使用的标准步骤:
·它将数据集分为训练和测试两部分 。
·它在训练数据集上训练模型 。
·它在测试集中评估相同的模型 。
·交叉验证技术可以有不同的风格 。
交叉验证中使用的各种方法TrainTestSplit
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
这是一种基本的交叉验证技术 。 在这种技术中 , 我们使用数据的一个子集作为模型训练的训练数据 , 并在另一组被称为测试集的数据上评估模型的性能 , 如图所示 。 误差估计然后告诉我们的模型在看不见的数据或测试集上的表现 。 这是一种简单的交叉验证技术 , 也被称为验证方法 。 这种技术存在差异大的问题 。 这是因为不确定哪些数据点会出现在测试集或训练集&这会导致巨大的方差 , 而且不同的集合可能会产生完全不同的结果 。


推荐阅读