python 模型交叉验证法_在Python和R中使用交叉验证方法提高模型性能

介绍

模型表现差异很大的可能原因是什么?换句话说,为什么在别人评估我们的模型时会失去稳定性?

在本文中,我们将探讨可能的原因。我们还将研究交叉验证的概念以及执行它的一些常用方法。

目录

为什么模型会失去稳定性?

什么是交叉验证?

交叉验证的几种常用方法

验证集方法

留一法交叉验证(LOOCV)

k折交叉验证

分层k折交叉验证

对抗验证

时间序列的交叉验证

自定义交叉验证技术

如何测量模型的偏差方差?

为什么模型会失去稳定性?

让我们使用下面的快照来说明各种模型的拟合情况,以了解这一点:

78e5ae6617c7f7eb7daa637661462a5e.png

在这里,我们试图找到数量和价格之间的关系。为此,我们采取了以下步骤:

我们使用线性方程式建立了关系,并为其显示曲线图。从训练数据点来看,第一幅图有很高的误差。在这种情况下,我们的模型无法捕获数据的潜在趋势

在第二个图中,我们刚刚发现了价格和数量之间的正确关系,即较低的训练误差

在第三个图中,我们发现训练误差几乎为零的关系。这是因为通过考虑数据点中的每个偏差(包括噪声)来建立关系,即模型过于敏感并且捕获仅在当前数据集中存在的随机模式。这是“过度拟合”的一个例子。

数据科学竞赛的一种常见做法是迭代各种模型以找到性能更好的模型。为了找到正确的答案,我们使用验证技术。

什么是交叉验证?

在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预测,并求这小部分样本的预测误差,记录它们的平方和。

以下是交叉验证中涉及的步骤:

保留样本数据集

使用数据集的其余部分训练模型

使用测试(验证)集的备用样本。帮助您评估模型性能的有效性。

交叉验证的几种常用方法

有多种方法可用于执行交叉验证。我已经在本节中讨论了其中一些。

验证集方法

在这种方法中,我们将数据集的50%保留用于验证,其余50%用于模型训练。但是,这种方法的主要缺点是,由于我们仅在50%的数据集上训练模型,因此很可能会错过一些有关数据的信息,导致更高的偏差。

Python代码:

train, validation = train_test_spl

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值