(斯坦福机器学习课程笔记)VC维,交叉检验和特征选择

来源:互联网 发布:sleep函数 linux 毫秒 编辑:程序博客网 时间:2024/06/05 09:47

====================VC维=================
上一节课通过hoeffding不等式得出的经验风险最小化及其推论,是基于模型集合是有限的这一假设的。显然的,一般情况下模型集合是无限的(因为模型的参数取值是连续的)。当模型集合数量K是无限的,有以下两个结论。


1、因为计算机的浮点数的取值是离散的,如64位的浮点数,要用64位bit来表示,那么64位浮点数的取值可能性只有264种。那么拥有d个参数的模型,共有264d个状态。可以得到结论,

m12γ2log2kσ=O(dγ2log1σ)

即在计算机系统中,训练样本数量和模型参数要成正比,才能有1σ的几率使得训练误差和泛化误差小于γ


2、接下来是VC维的理论。课里面没有VC维理论的推导过程,只有结论:
对于模型集合H,令VC(H)=d,即H模型能够打散d个点。那么至少有1σ的几率,对于模型集合H中的所有模型h,有

|ϵ(h)ϵ^(h)|O(dmlogmd+1mlog1σ)

还有
m=Oγ,σ(d)

即要达到1σ的几率使得训练误差和泛化误差小于γ的效果,训练样本数量和模型参数数量要成正比。

以上的结论,包括上一节课对于训练样本数量和模型参数数量关系的定性分析,并不能告诉我们对于某一个模型,多大数量的样本是足够的。因为式子给出的结果是十分宽松,即对一个十分简单的机器学习问题建立的模型,通过以上式子得出来所需训练样本数量也是十分巨大的。以上的定性分析,得出且仅得出一个结果,即要保证效果,训练样本数量和模型参数数量要成正比。象这样的结论是可以得出的:如果用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)令特征集合F为空集
(2)对于不属于F的特征,计算添加该特征后的模型精度的提升
(3)选择提升最大的特征集合,集合大小自定,不能太大,因为特征之间会有相关性
(4)重复第二和第三步,直到模型精度不再提升或达到自定的特征数量
2、后向特征选择法
(1)对于所有特征,分别去除后并计算模型精度的下降
(2)去除模型精度下降最小的特征集合,集合大小自定,不能太大,因为特征之间会有相关性
(3)重复第一和第二步,直到模型精度降到能够接受的下限或达到自定的特征数量
3、特征过滤
前向和后向特征选择法,判定一个特征是否跟模型的分类能力相关的依据是对比有\无特征时模型的分类能力的大小。以下判定一个特征是否跟模型的分类能力相关的方法计算量要小。互信息的计算公式

MI(xi,y)=x1yp(xi,y)logp(xi,y)p(xi)p(y)

0 0