(斯坦福机器学习课程笔记)VC维,交叉检验和特征选择
来源:互联网 发布:sleep函数 linux 毫秒 编辑:程序博客网 时间:2024/06/05 09:47
====================VC维=================
上一节课通过hoeffding不等式得出的经验风险最小化及其推论,是基于模型集合是有限的这一假设的。显然的,一般情况下模型集合是无限的(因为模型的参数取值是连续的)。当模型集合数量K是无限的,有以下两个结论。
1、因为计算机的浮点数的取值是离散的,如64位的浮点数,要用64位bit来表示,那么64位浮点数的取值可能性只有
即在计算机系统中,训练样本数量和模型参数要成正比,才能有
2、接下来是VC维的理论。课里面没有VC维理论的推导过程,只有结论:
对于模型集合
还有
即要达到
以上的结论,包括上一节课对于训练样本数量和模型参数数量关系的定性分析,并不能告诉我们对于某一个模型,多大数量的样本是足够的。因为式子给出的结果是十分宽松,即对一个十分简单的机器学习问题建立的模型,通过以上式子得出来所需训练样本数量也是十分巨大的。以上的定性分析,得出且仅得出一个结果,即要保证效果,训练样本数量和模型参数数量要成正比。象这样的结论是可以得出的:如果用10000个训练样本训练一个出了一个不错的模型,那么用8000个训练样本,得出的结果也应该是不错的。
========================交叉检验================
过拟合和欠拟合,在模型选择和训练过程中都会发生。
模型参数过多会造成过拟合,模型参数过少会造成欠拟合。
训练过度会造成过拟合,训练不够会造成欠拟合。
既然定性的分析不能告诉我们,对于一个有m个训练样本的机器学习问题,建立一个多少个参数的模型是合适的。那么我们只能通过交叉检验的方式,来决定合适的模型。
交叉检验分3类,保留交叉验证,K重交叉检验和留一交叉检验。
1、保留交叉检验
(1)将 训练样本分为训练集和测试集,一般为训练集70%,测试集30%
(2)用训练集做训练
(3)用测试集检验训练结果
(4)选择在测试集里效果最好的模型
这个方法的缺点是有30%的训练样本不用来训练模型,浪费了宝贵的训练样本
2、K重交叉验证
(1)将训练样本平均分为k份,一般取k=10
(2)for i in k:
选第i份做测试集,其余做训练集。训练并测试模型。这里会训练并测试k次。取k次测试的平均误差作为该模型的误差。最终选择平均误差最小的模型。
3、留一交叉检验
令k重交叉验证的k为一,执行K重交叉验证。
K重交叉验证和留一交叉检验的优点是充分利用了训练样本,缺点是计算量较大。
=======================特征选择=================
特征选择是为了筛选特征,去除对分类能力影响小的特征,使得模型更易训练。
1、前向特征选择法
(1)令特征集合
(2)对于不属于
(3)选择提升最大的特征集合,集合大小自定,不能太大,因为特征之间会有相关性
(4)重复第二和第三步,直到模型精度不再提升或达到自定的特征数量
2、后向特征选择法
(1)对于所有特征,分别去除后并计算模型精度的下降
(2)去除模型精度下降最小的特征集合,集合大小自定,不能太大,因为特征之间会有相关性
(3)重复第一和第二步,直到模型精度降到能够接受的下限或达到自定的特征数量
3、特征过滤
前向和后向特征选择法,判定一个特征是否跟模型的分类能力相关的依据是对比有\无特征时模型的分类能力的大小。以下判定一个特征是否跟模型的分类能力相关的方法计算量要小。互信息的计算公式
- (斯坦福机器学习课程笔记)VC维,交叉检验和特征选择
- 【斯坦福---机器学习】复习笔记之特征选择
- 斯坦福机器学习在线课程笔记
- 斯坦福机器学习课程笔记(第五讲)
- 斯坦福NG机器学习课程:Dimensionality_reduction笔记
- (斯坦福机器学习课程笔记)EM算法
- 斯坦福机器学习课程笔记1
- 斯坦福机器学习课程
- (斯坦福机器学习课程笔记)正则化和机器学习应用的建议
- 斯坦福ML公开课笔记10——VC维、模型选择、特征选择
- 斯坦福ML公开课笔记10——VC维、模型选择、特征选择
- 斯坦福课程学习笔记
- 斯坦福机器学习笔记——学习资源和课程概述
- (斯坦福机器学习课程笔记)牛顿法算法学习
- 斯坦福机器学习课程目录
- 斯坦福NG机器学习课程:Anomaly Detection笔记
- 斯坦福机器学习课程笔记week4&5-神经网络
- (斯坦福机器学习课程笔记)多项式回归练习
- redis集群搭建以及和spring整合
- JavaEE体系
- 不明白的问题之子查询可以提高速度
- 写给自己的--工作
- javaWEB总结(18):利用cookie进行自动登陆
- (斯坦福机器学习课程笔记)VC维,交叉检验和特征选择
- 290. Word Pattern
- ThinkPHP下实现代发邮件
- SpringMVC工作原理
- 开源操作系统与Windows大比拼!
- ajax提交的javascript代码
- union all和union的区别
- 快速幂取模算法
- HDU3038【种类并查集】