【斯坦福---机器学习】复习笔记之特征选择

来源:互联网 发布:组策略限制软件安装 编辑:程序博客网 时间:2024/05/20 12:22

本讲大纲:

1.VC维(VC dimension)
2.模型选择(model selection)
—交叉验证(cross validation)
—特征选择(feature selection)

1.VC维

给定猜想类这里写图片描述,定义VC维(Vapnik-Chervonenkis dimension),记作VC(H),表示能够被这里写图片描述分开的最大集合的尺寸(如果这里写图片描述能够分开任意大的集合,那么这里写图片描述).

例如,考虑下面几个的三个点:
这里写图片描述
在二维中线性分类器能够把它们分开吗(这里写图片描述这里写图片描述)?显然是可以的. 事实上,任意这些点可能的八种标签情况,我们都能找到“零训练误差”的线性分类器.
这里写图片描述
但是,这个猜想不能分开四个点的集合,因此VC(H)=3.
注意,即使可能有大小为3的集合不能被分开,VC维依然为3. 例如,三个点在同一条线上时(左图),那么没有办法找到线性分隔器(右图).
这里写图片描述
在VC维的定义下,为了证明VC(H)至少是d,我们要证明H能分开至少一个大小为d的集合.

(在学习理论中最重要的定理!)

定理:假设有这里写图片描述,并且令,那么至少有概率为这里写图片描述,对所有的这里写图片描述,有
这里写图片描述

因此,
这里写图片描述
换句话来说,如果猜想有有限的VC维,当m足够大时会有一致收敛性. 跟之前一样,我们可以以
这里写图片描述的形式给出这里写图片描述的边界.

推论:这里写图片描述对所有的这里写图片描述保持至少这里写图片描述的概率,满足这里写图片描述
换句话说,用这里写图片描述训练好的训练样本数量和VC维是线性的.结果表明,对大部分的猜想类,vc维(假设合理的参数化)和参数的数量大致也是线性相关的.把这两个放到一起,可以说(对于最小化训练误差的算法来说)需要的训练样本的数量大致和参数的类型是线性的.


2.模型选择

假设我们有一个有限的模型集合这里写图片描述,我们要从这些模型中做出选择,例如我们要从SVM,神经网络或者是逻辑回归中做出选择,那么我们的模型集合就要包含这些模型.

交叉验证
假设有训练集S,根据经验风险最小化的知识,我们可能会想到通过ERM来进行模型选择:
1.在训练集S上训练每个模型Mi,得到猜想hi;
2.选择训练误差最小的猜想

但是这个算法是不行的.比如选择多项式的次数,次数越高的多项式,对数据集的拟合程度越好,训练误差也越小,因此这个方法选择的是高方差,高次的多项式模型,显然是一个很糟糕的模型.

保留交叉验证(hold-out cross validation),也称为simple cross validation.
1.随机把训练集S分成两个子集,这里写图片描述(70%)和这里写图片描述(30%).这里写图片描述称为保留交叉验证集.
2.用这里写图片描述训练每个模型,得到猜想hi.
3.选择在交叉验证集中有最小错误这里写图片描述的猜想.

通过在没有训练的交叉验证集测试,对每个猜想的真实泛化误差有了一个更好的估计,并且能够选择最小泛化误差的猜想. 一般来说,1/4-1/3的数据是用来做交叉验证的,30%是一个典型的选择.
视情况而定,第三步也可以替换成通过这里写图片描述选择模型Mi,然后用整个训练集训练Mi(一般情况下,这个效果是不错的,但是如果模型对数据敏感就不行了.)

交叉验证的缺点是浪费了30%的数据,即使我们最后用整个训练集去训练模型. 在数据充足并且很容易获得的情况下,这是好的,但是如果数据是很稀少的,我们需要采用另外一种方式了.

k-fold交叉验证(k-fold cross validation)
1.随机把S分成k个子集,每个有m/k个训练样本,为S1,…,Sk;
2.对每个模型,我们这样评价:
这里写图片描述
3.选择具有最低估计泛化误差的模型,并且用整个数据集对模型进行训练,最后输出的猜想就是我们的答
案.

一个对fold典型的选择是k=10.

留一交叉验证(leave-one-out cross validation)
当数据非常稀有时,极端的选择是把k=m,为了尽可能使留下来的数据少,这种情况下我们会用除了一个之外的数据集进行训练,剩下的用来测试,k个错误的平均值用来作为模型的估计泛化误差.

即使这在边说的是交叉验证用来进行模型选择,但是只有单个模型时也可以用来评价模型的好坏.

特征选择
有的时候,特征的数量是非常大的,但是可能只是很小一部分的特征跟学习任务是有关系的. 这个时候就需要特征选择算法减少特征的数量. 给定n个特征,有这里写图片描述种子集可能的选择,枚举所有的可能性代价太大,一般是要采用启发式搜索(heuristic search).
下面的搜索程序叫向前搜索(forward search):
这里写图片描述

外层循环当特征数等于n或者达到预先设定的阈值时终止.

上面描述的算法叫做包装模型特征选择(wrapper model feature selection).

除了向前搜索,还有向后搜索(backward search):
开始时,然后每次循环删除一个特征直到这里写图片描述

包装特征选择算法经常效果很好,但是需要多次调用学习算法,计算的代价很大.

过滤特征选择(Filter feature selection)是启发式搜索,但是计算的代价小得多.
思想是计算根据每个特征对标签y的贡献得到一个分数,然后选择k个最大分数的特征.
可以根据xi和y的相关性计算分数. 但是在现实中,一个比较常见的做法是(尤其对于离散特征)选择S(i)为xi和y的**互信息(mutual information)**MI(xi,y):
这里写图片描述
(上面的等式假设可x和y是二元值,但是更常见的是在变量的定义域内)
mutual information也可以表示为Kullback-Leibler (KL) divergence:
这里写图片描述
如果xi和y是相互独立的随机变量,两个变量的分布的KL-divergence为0.

最后一个问题,根据分数选出k个特征,但是这个k是则呢确定的?一个标准的方式是用交叉验证去选择可能的k.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 花生和瓜子受潮皮了怎么办? 菜叶上长了腻虫怎么办 磨辊耐磨层脱落怎么办 磨辊耐磨层小块脱落怎么办 密封胶皮圈松了怎么办 汽筒里胶皮垫密封不严怎么办 磁耦气缸脱磁了怎么办 无杆气缸行程大怎么办 c4d中模型变成线怎么办 内径槽异性需要车一刀怎么办 轴承太紧影响转速怎么办 电动车前轮蝶刹抱死怎么办 摩托三轮车油刹抱死怎么办 手动档汽车离合抱死怎么办 别克gl8后轮吃胎怎么办 扭力梁后轮吃胎怎么办 非独立悬挂吃胎怎么办 货车半轴法兰盘裂纹怎么办 小天才平板裂屏了怎么办 新车撞了个坑怎么办 新车碰了个坑怎么办 汽车顶被砸了个坑怎么办 途观l前减震异响怎么办 锦明8代声音太大怎么办 手机网页无法加载插件怎么办 微信公众号被投诉怎么办 住了酒店的尾房怎么办 喜欢前任的闺蜜怎么办 闺蜜给介绍对象怎么办 喜欢对象的发小怎么办 山东省直医保卡丢失怎么办 高铁票如果错过了怎么办 动车错过了时间怎么办 长途动车错过了怎么办 动车如果错过了怎么办 没有取票错过了怎么办 动车出站没检票怎么办 火车晚点耽误了下班车怎么办 动车票中途丢了怎么办 购买二手房异地铁路公积金怎么办 沈阳公积金卡丢了怎么办