交叉验证的作用

1. 可以使用所有的数据

一般模型训练都要把数据分成训练集和验证集合,这就导致训练数据比原始的数据要少,并且验证集也无法是所有的原始数据。
如果使用交叉验证,所有数据都可以用作训练(但不是同一个模型),所有数据也都可以用作验证集。

2. 评估模型的稳定性及调参

比如5折交叉验证,在参数确定了的情况下,我们可以将数据弄成五份,每一份中80%训练,20%作为测试集,这样可以训练五个模型,这五个模型除了训练集测试集不同外,其他的都相同,这样我们可以得到五个模型的评估指标比如auc,计算五个模型得到的auc的方差,如果方差小说明模型的泛化性比较好,模型比较稳定是个好模型,否则说明模型泛化性不好。
xgboost中cv函数返回的值包括两个,一个是单模型的评价指标(比如auc),另外一个是模型的方差。

参数不确定的情况下,我们通过模型的准确性和稳定性来选择最合适的参数。

3. stacking的模型融合方法

stacking模型融合方法中,第二个模型中的特征一般来自第一个模型中对数据的预测,我们不能用自己的训练然后预测自己,这时就要用stacking的方法来分块生成,每次80%的数据训练,用得到的模型预测剩下的20%和test data,重复五次就能得到所有训练集的所有预测结果,从而作为第二个模型的输入。下图比较容易表达这一过程
在这里插入图片描述

4. 处理分组的数据

举个例子,比如语音识别程序,训练集为三个不同的人说的话,如果我们将这三个人说的话融合到一起然后随机采样进行训练和测试,那么结果应该是偏好的。
如果我们用其中两个人声音进行训练第三个人的声音进行测试,那么就能很好的评估模型的泛化性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值