【机器学习】超参数的选择——网格搜索与交叉验证

  • 超参数:在学习过程之前设置的参数,不是通过训练得到的参数,通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

  • 网格搜索:利用的是一种十分简单暴力的方法,即穷举搜索。在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。当然这里候选的参数还是要人为给出

GridSearchCV中的CV就是指的是Cross Validation,即交叉验证。

  • 简单的交叉验证:将训练数据进一步划分为训练集和验证集,使用验证集[调整模型的超参数]和用于对模型能力进行初步的评估。

    值得注意的是调整模型的超参数这一个作用,在网格搜索的交叉验证没有体现。网格搜索的交叉验证中,验证集的作用是进行评估。

    那一般什么情况下可以用交叉验证调整模型的超参数呢?一般来讲调整模型的超参数是在确定了一组初始参数后,在训练过程中人工调整

    一般在训练时,几个epochs结束后会跑一次验证集看看效果。

    第一个好处是,可以及时发现模型或者参数的问题,比如mAP不增长或者增长很慢等情况,这时可以及时终止训练,重新调参或者调整模型,而不需要等到训练结束。一般来讲,我们会隔一段时间保存神经网络的参数,称之为checkpoints,当我们中止训练后重新开始的时候,可以从checkpoints中恢复网络的权重,并且以根据验证集的情况进行调整后的超参数进行训练。

    另外一个好处是验证模型的泛化能力,如果在验证集上的效果比训练集上差很多,就该考虑模型是否过拟合了。当察觉到有过拟合的倾向是,我们可以停止训练,这种策略称之为早停(Early Stopping)

    同时,还可以通过验证集对比不同的模型。在一般的神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点或者在神经网络中选择隐藏层神经元的数量

  • 多折交叉验证:将原始训练集均分为K组,让每一个子集都做一次验证集,其余的K-1个子集作为训练集。这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。

  • 留一交叉验证Leave-One-Out Cross Validation, LOO-CV:在数据缺乏的情况下使用,如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1个样本作为训练集,故LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标。

多折交叉验证是将样本分为子集,一个子集内有多个样本,而留一交叉验证是每个样本都单独成一个子集,即k折交叉验证中的k等于样本数量n

一般根据经验来说,k取5或10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K折交叉验证可以帮助我们确定超参数的最佳取值。在K近邻算法中,超参数K的取值是需要确定的。K折交叉验证的原理是将数据集分成K个相等的子集,然后选取其中一个子集作为验证集,剩下的K-1个子集作为训练集。接着,我们将K次训练和验证的结果进行平均,得到一个准确率。通过尝试不同的K值,我们可以找到在交叉验证中表现最好的K值作为超参数的最佳取值。 在超参数搜索中,我们可以使用Sklearn的GridSearchCV API来自动寻找最优的超参数。这个API可以帮助我们遍历给定参数空间中的所有可能性,并通过交叉验证来评估每个参数组合的性能。对于有多个超参数的情况,GridSearchCV会自动进行两两组合进行寻优。最终,我们可以选择具有最高准确率的超参数组合作为最优选择。 总结起来,k折交叉验证通过将数据集划分为K个子集,选择其中一个子集作为验证集,剩下的K-1个子集作为训练集,然后通过多次训练和验证得到平均准确率,来确定超参数的最佳取值。而使用Sklearn的GridSearchCV API可以自动寻找最优的超参数组合,通过遍历给定参数空间中的所有可能性,并通过交叉验证来评估每个参数组合的性能,最终选择具有最高准确率的超参数组合作为最优选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [机器学习基础|K折交叉验证超参数搜索](https://blog.csdn.net/weixin_44010678/article/details/118540967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [机器学习之模型选择(K折交叉验证超参数选择)](https://blog.csdn.net/weixin_40849273/article/details/83059134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值