07 | 模型的验证方法
王天一
该思维导图由 AI 生成,仅供参考
模型本身及其背后学习方法的泛化性能(generalization performance),也就是模型对未知数据的预测能力,是机器学习的核心问题。可在一个问题的学习中,往往会出现不同的模型在训练集上具有类似的性能,这时就需要利用模型验证来从这些备选中做出选择。
由于模型的泛化性能和它的复杂度是直接挂钩的,所以模型验证的任务就是确定模型的复杂度以避免过拟合的发生。原则上说,模型验证应该使用专门的验证数据集。可是当数据集的容量较小,不足以划分成三个部分时,验证集和测试集就可以合二为一,共同来完成对模型的选择和评价。
估计泛化性能时,最重要的依据就是模型在训练数据集上的精度(accuracy)。定性而论,模型在训练集上的精度不能太低。由于模型的拟合和评价都是在相同的训练集上完成的,因此用训练误差去估计测试误差,得到的必然是过于乐观的结果。如果在训练集上都达不到较高的精度的话,模型本身的假设就很可能存在问题(比如用线性模型来建模平方关系的数据),从而导致较大的偏差,这样的模型很难指望它在真实数据上具有良好的表现。
可另一方面,训练数据集上的正确率也不是“低低益善”,因为过低的正确率往往是欠拟合的征兆。训练数据集中的数据量一定是有限的,这些数据共同构成了高维空间上一个点集。只要模型的参数足够多,形式足够复杂,就必定可以构造出经过所有数据点的曲线或者曲面,在训练集上得到 100% 的正确率。显然,这样的模型对训练数据的拟合能力过强,不可能具备良好的泛化特性。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了机器学习中模型验证的方法及其背后的学习方法的泛化性能。在机器学习中,模型的泛化性能是核心问题,因为不同模型在训练集上可能具有类似的性能,需要利用模型验证来选择最佳模型。文章详细介绍了$k$折交叉验证法和自助采样法两种模型验证的方法,以及它们的优缺点和适用场景。此外,还介绍了模型参数和超参数的概念,以及模型验证在调整超参数上的作用。总的来说,本文通过理论分析和实际应用的角度,全面介绍了模型验证的方法和技巧,对于从事机器学习和数据分析的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《机器学习 40 讲》,新⼈⾸单¥59
《机器学习 40 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(13)
- 最新
- 精选
- Haley_Hu参数是模型训练出来得到的结果,超参数需要手动去设置。比如神经网络里面的层数等
作者回复: 没错👍
2018-09-2428 - 林彦超参数无法靠模型的数据训练直接获取。经常根据经验或系统的推荐在模型训练前手动设置,比如文中提到多项式的次数N,各种KXX模型中的K,学习速率,训练次数等。超参数会决定模型的属性(如复杂度)和训练的过程。在参数取值的数量无限时,超参数还无法用最优化算法找到最优解。可以用随机搜索,贝叶斯优化等方法尝试寻找更优的超参数,计算开销一般都比较大。 参数是模型中可以通过数据训练得到的参数,不需要人为事先指定。
作者回复: 总而言之,超参数得人为设置,再用验证集去测。
2018-06-1924 - zc老师,什么时候上python实例代码?
作者回复: 介绍具体模型是就有代码了,主要是对第三方库的使用。
2018-06-194 - dreamintime老师,为啥k折交叉验证,k越大,验证集方差就会越大?
作者回复: 因为k越大,使用的训练数据越多,出现过拟合的可能性也越高。这样的模型可能学到训练数据中的干扰和噪声特性,在单独划分出的验证集上未必有好的表现。当然这也不是一定之规,每个具体问题都会有一个方差最优的k值,方差也就会先下降再上升。
2018-11-092 - 韶华有没有根据数据量大小设置训练集,验证集和测试集的比例建议?另外没有验证集的话,会有哪些潜在问题?
作者回复: 一般的比例是2:1:1或者1:1:1。 没有验证集就不能调超参数,不能做模型选择。只是在训练集上最优化出来的模型可能有过拟合的风险。
2018-06-192 - 杨家荣极客时间 21天打卡行动 45/21 <<机器学习40讲/07>>模型的验证方法 回答老师问题: 参数和超参数之间的关系? 在机器学习的 上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。 在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。 相反,其他参数的值通过训练得出。 超参数: • 定义关于模型的更高层次的概念,如复杂性或学习能力。 • 不能直接从标准模型培训过程中的数据中学习,需要预先定义。 • 可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定 超参数的一些示例: • 树的数量或树的深度 • 矩阵分解中潜在因素的数量 • 学习率(多种模式) • 深层神经网络隐藏层数 • k均值聚类中的簇数 [来源:百度百科https://baike.baidu.com/item/%E8%B6%85%E5%8F%82%E6%95%B0/3101858?fr=aladdin] 今日所学: 1,泛化性能是机器学习的核心问题; 2,由于模型的泛化性能和它的复杂度是直接挂钩的,所以模型验证的任务就是确定模型的复杂度以避免过拟合的发生; 3,估计泛化性能时,最重要的依据就是模型在训练数据集上的精度(accuracy)。 4,泛化误差也被称为样本外误差(extra-sample error)。 5,样本内误差:核心在于刻画噪声的影响。 6,利用样本训练出的模型 \hat f 在样本上的表现和在总体上的表现之间的差值,就是所谓的样本内误差。 7,对样本内误差的估计又可以转化成对它和训练误差之间的差值的估计,这个差值在《统计学习基础》中被称为乐观度(optimism)。 8,赤池信息量准则(Akaike Information Criterion, AIC)或者贝叶斯信息量准则(Bayesian Information Criterion, BIC)是计算有效参数的数目; 9,原则就是确保训练集、验证集和测试集三者两两互不相交。 10,留出法的思想稍做推广: k 折交叉验证法; 11,模型验证是模型原型设计的最后完善。一旦完成了模型验证,模型就不能再做调整了; 重点: 模型验证的作用是选择最佳模型并确定其性能; 对数据的重采样可以直接实现对样本外误差,也就是泛化误差的估计; k 折交叉验证是无放回的重采样方法; 自助采样是有放回的重采样方法。2020-02-012
- ifelse学习打卡2023-05-29归属地:浙江1
- 张金磊“对测试误差的估计可以转化成对样本内误差的估计”,请问老师,这里的测试误差是指什么?根据上下文我没搞懂2022-04-201
- 张金磊“但好在经过一番处理之后,对测试误差的估计可以转化成对样本内误差的估计” 老师,这里的“测试误差”不是指在测试集上的误差吧?2022-04-20
- 建强通过网上查资料,模型的参数和超参数有以下特征: 一、模型参数特征: (1)进行模型预测时需要模型参数 (2)模型参数值可以定义模型功能 (3)模型参数用数据估计或数据学习得到 (4)模型参数一般不由实践者手动设置 (5)模型参数通常作为学习模型的一部分保存 二、模型超参数特征: (1)模型超参数常应用于估计模型参数的过程中 (2)模型超参数通常由实践者直接指定 (3)模型超参数通常可以使用启发式方法来设置 (4)模型超参数通常根据给定的预测建模问题而调整 个人的一点肤浅理解,请老师指正: 模型参数是模型的一个内在特征,用来刻画模型本身的固有特性,它可以通过对符合模型特征的数据的统计量进行估计或计算来得到,比如正态分布模型中的均值和方差,可以通过样本均值和样本方差来得到一个估计值;而模型超参数不是模型本身固有的,它主要用来控制模型的复杂度和规模, 是外界施加给模型的一个特征,需要进行人为控制。 在机器学习中通过学习模型参数可以得到更加精准的模型,通过控制超参数可以控制模型复杂度,使之能更好地拟合数据。2020-12-06
收起评论