使用折外预测(oof)评估模型的泛化性能和构建集成模型

机器学习算法通常使用例如 kFold等的交叉验证技术来提高模型的准确度。在交叉验证过程中,预测是通过拆分出来的不用于模型训练的测试集进行的。这些预测被称为折外预测(out-of-fold predictions)。折外预测在机器学习中发挥着重要作用,可以提高模型的泛化性能。

在本文中,将介绍机器学习中的折外预测,主要包括以下几个方面:

  • 折外预测是对不用于训练模型的数据进行的一种样本外预测。
  • 在对看不见的数据进行预测时,折外预测最常用于估计模型的性能。
  • 折外预测可用于构建集成模型,称为堆叠泛化或堆叠集成。

什么是折外预测?

使用重采样技术例如 k-fold来评估机器学习算法在数据集上的性能是一种很常见的方法。k-fold 过程包括将训练数据集分成 k 组,然后在使用 k 组样本中的每一个作为测试集,而其余样本用作训练集。

这意味着训练和评估了 k 个不同的模型。这个过程可以总结如下:

1、随机打乱数据集。

2、将数据集分成 k 组。

3、对于每个独特的组:将该组作为一个保留数据用做测试,将剩余的组作为训练数据集,在训练集上拟合模型并在测试集上进行评估,重复k次使得每一组保留数据都进行了测试。

4、最后预测时使用训练出的K个模型进行整合预测。

数据样本中的每个数据都被分配到一个单独的组中,并在整个过程中保持在该组中。这意味着每个样本都有机会在 作为测试集保留至少1次,并作为训练集最多 k-1 次。折外预测是在重采样过程中对每组得保留数据(测试集)所做的那些预测。如果正确执行,训练数据集中的每个数据都会有一个预测。

折外预测的概念与样本外预测(Out-of-Sample )的概念直接相关,因为这两种情况下的预测都是在模型训练期间未使用的样本上进行的,并且都可以估计模型在对新数据进行预测时的性能。折外预测也是一种样本外预测,尽管它使用了k-fold交叉验证来评估模型。

下面我们看看折外预测的两个主要功能

使用折外预测进行模型的评估

折外预测最常见的用途是评估模型的性能。使用诸如错误或准确率之类的评分指标对未用于模型训练的数据进行预测和评估。相当用于使用了新数据(训练时不可见的数据)进行预测和对模型性能的估计,使用不可见的数据可以评估模型的泛化性能,也就是模型是否过拟合了。

对模型在每次训练期间所做的预测进行评分,然后计算这些分数的平均值是最常用的模型评估方法。例如,如果一个分类模型,可以在每组预测上计算分类准确度,然后将性能估计为对每组折外预测估计的平均分数。

下面可以通过一个小的示例展示使用折外预测的模型评估。首先,使用 scikit-learn 的make_blobs() 函数创建一个包含 1,000 个样本、两个类和 100 个输入特征的二元分类问题。

完整文章:

https://www.overfit.cn/post/1ebf8320e9934d02ad74bafd198d67b5

posted @ 2022-02-18 11:34  deephub  阅读(394)  评论(0编辑  收藏  举报