赞
踩
机器学习算法中,超参数是一个非常重要的问题;
超参数,即:模型开始训练之前,设置好的参数
根据模型评估值,对超参数进行优化,选择最佳超参数值,以提高学习的性能和效果
对于超参数值的设置,我们有两种方式:
1. 人工试数
2. 交叉验证
1. 将数据集划分为:训练集、验证集、测试集
2. 将所有可能的超参数放在训练集上做训练,得到多个模型
3. 用验证集对得到的所有模型做评估,找出性能最佳的模型,也就相当于找到最优的超参数值
4. 用得到的超参数在 【训练集+验证集】 上做模型训练,得到一个新的模型
5. 用测试集对新模型做评估
6. 用已确定的超参数在所有数据上重新训练,得到最终模型
即:验证集的作用为确定超参数
测试集的作用为评估模型性能
处理简单,适用于样本较多的情况
K折交叉验证(K-fold cross-validation),其中K为超参数,常用K=10
1. 将待测的超参数据集等分为K份,其中1份为验证数据,其余K-1份为训练数据
2. 对该数据集重复K次(训练+验证)
3. 对K个结果进行平均或其他操作以获得综合结果,最终得到该超参数集的性能指标
训练集与测试集不重合,测试结果是绝对有效的,常用10折交叉验证
留一验证(LOOCV),与K折相似,但此时K的值等于样本的数量
1. 对于K个样本的超参数集,每次训练使用K-1个样本,剩下的1个为验证数据
2. 对所有数据进行K次(训练+验证)
3. 对K个结果进行平均或其他操作以获得综合结果,最终得到该超参数集的性能指标
常用于样本量非常小的情况
本篇文章仅涵盖了目前已讨论过的知识点,未来将持续更新
PS:本文相关代码存放位置
波士顿房价预测 交叉验证代码实现:寻找最优超参数
感谢阅读~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。