当前位置: 首页 > 科技观察

机器学习中必学的四种交叉验证技术

时间:2023-03-21 01:58:35 科技观察

机器学习中必须学习的四种交叉验证技术介绍考虑在数据集上创建模型,但在看不见的数据上失败。我们不能简单地将模型拟合到我们的训练数据,然后等待它在真实的、看不见的数据上完美运行。这是过度拟合的一个例子,我们的模型已经拾取了训练数据中的所有模式和噪声。为了防止这种情况发生,我们需要一种方法来确保我们的模型已经捕获了大部分模式并且不会提取数据中的每一点噪声(低偏差和低方差)。处理此问题的众多技术之一是交叉验证。理解交叉验证假设在一个特定的数据集中,我们有1000条记录,我们对其进行train_test_split()。假设我们有70%的训练数据和30%的测试数据random_state=0,这些参数导致85%的准确率。现在,如果我们设置random_state=50,假设准确度增加到87%。这意味着,如果我们一直选择不同的random_state精度值,就会出现波动。为了防止这种情况,一种称为交叉验证的技术开始发挥作用。交叉验证的类型留一法交叉验证(LOOCV)在LOOCV中,我们选择一个数据点作为测试,所有剩余数据将作为第一次迭代的训练数据。在下一次迭代中,我们将选择下一个数据点作为测试数据,其余数据作为训练数据。我们将对整个数据集重复此操作,以便在最后一次迭代中选择最后一个数据点作为测试。通常,要计算迭代交叉验证过程的交叉验证R2,您需要计算每次迭代的R2分数并取平均值。尽管它可以对模型性能进行可靠且无偏的估计,但执行起来计算量大。2.K-foldcross-validation在K-foldCV中,我们将数据集分成k个子集(称为folds),然后我们对所有子集进行训练,但留下(k-1)个子集用于评估训练好的模型。假设我们有1000条记录并且我们的K=5。这个K值意味着我们有5次迭代。第一次迭代要考虑的测试数据的数据点数从一开始就是1000/5=200。然后对于下一次迭代,接下来的200个数据点将被视为测试,依此类推。为了计算整体准确度,我们计算每次迭代的准确度,然后取它们的平均值。我们从这个过程中可以达到的最低准确度将是所有迭代中产生的最低准确度,同样,最大准确度将是所有迭代中产生的最高准确度。3.分层交叉验证分层CV是常规k折交叉验证的扩展,但专门用于分类问题,其中拆分不是完全随机的,并且目标类之间的比率在每个折叠处与完整的数据集相同。假设我们有1000条记录,其中600条是,400条不是。因此,在每个实验中,它将确保随机样本以这样一种方式填充到训练和测试中,即每个类的至少一些实例将出现在训练和测试拆分中。4.时间序列交叉验证在时间序列CV中有一系列测试集,每个测试集包含一个观察值。相应的训练集仅包含在形成测试集的观察结果之前发生的观察结果。因此,未来的观察不能用于构建预测。预测准确度是通过对测试集取平均值来计算的。此过程有时称为“评估滚动预测来源”,因为预测所基于的“来源”会及时向前滚动。结论在机器学习中,我们通常不想要在训练集上表现最好的算法或模型。相反,我们需要一个在测试集上表现良好的模型,以及一个在给定新输入数据时始终表现良好的模型。交叉验证是确保我们能够识别此类算法或模型的关键步骤。