`
zangwenyang
  • 浏览: 125500 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

模型选择(转载)

 
阅读更多

http://www.cnblogs.com/jerrylead/archive/2011/03/27/1996799.html

1 问题

     模型选择问题:对于一个学习问题,可以有多种模型选择。比如要拟合一组样本点,可以使用线性回归,也可以用多项式回归。那么使用哪种模型好呢(能够在偏差和方差之间达到平衡最优)?

     还有一类参数选择问题:如果我们想使用带权值的回归模型,那么怎么选择权重w公式里的参数

形式化定义:假设可选的模型集合是,比如我们想分类,那么SVMlogistic回归、神经网络等模型都包含在M中。

2 交叉验证(Cross validation

     我们的第一个任务就是要从M中选择最好的模型。

     假设训练集使用S来表示

     如果我们想使用经验风险最小化来度量模型的好坏,那么我们可以这样来选择模型:

1使用S来训练每一个,训练出参数后,也就可以得到假设函数。(比如,线性模型中得到后,也就得到了假设函数

2选择错误率最小的假设函数。

     遗憾的是这个算法不可行,比如我们需要拟合一些样本点,使用高阶的多项式回归肯定比线性回归错误率要小,偏差小,但是方差却很大,会过度拟合。因此,我们改进算法如下:

1从全部的训练数据S中随机选择70%的样例作为训练集,剩余的30%作为测试集

2上训练每一个,得到假设函数

3上测试每一个,得到相应的经验错误

4选择具有最小经验错误作为最佳模型。

     这种方法称为hold-out cross validation或者称为简单交叉验证。

     由于测试集是和训练集中是两个世界的,因此我们可以认为这里的经验错误接近于泛化错误(generalization error)。这里测试集的比例一般占全部数据的1/4-1/330%是典型值。

     还可以对模型作改进,当选出最佳的模型后,再在全部数据S上做一次训练,显然训练数据越多,模型参数越准确。

     简单交叉验证方法的弱点在于得到的最佳模型是在70%的训练数据上选出来的,不代表在全部训练数据上是最佳的。还有当训练数据本来就很少时,再分出测试集后,训练数据就太少了。

     我们对简单交叉验证方法再做一次改进,如下:

1将全部训练集S分成k个不相交的子集,假设S中的训练样例个数为m,那么每一个子集有m/k个训练样例,相应的子集称作{}

2每次从模型集合M中拿出来一个,然后在训练子集中选择出k-1

{}(也就是每次只留下一个),使用这k-1个子集训练后,得到假设函数。最后使用剩下的一份作测试,得到经验错误

3由于我们每次留下一个j1k),因此会得到k个经验错误,那么对于一个,它的经验错误是这k个经验错误的平均。

4选出平均经验错误率最小的,然后使用全部的S再做一次训练,得到最后的

     这个方法称为k-fold cross validationk-折叠交叉验证)。说白了,这个方法就是将简单交叉验证的测试集改为1/k,每个模型训练k次,测试k次,错误率为k次的平均。一般讲k取值为10。这样数据稀疏时基本上也能进行。显然,缺点就是训练和测试次数过多。

     极端情况下,k可以取值为m,意味着每次留一个样例做测试,这个称为leave-one-out cross validation

如果我们发明了一种新的学习模型或者算法,那么可以使用交叉验证来对模型进行评价。比如在NLP中,我们将训练集中分出一部分训练,一部分做测试。

3 特征选择(Feature selection

     特征选择严格来说也是模型选择中的一种。这里不去辨析他们的关系,重点说明问题。假设我们想对维度为n的样本点进行回归,然而,n可能大多以至于远远大于训练样例数m。但是我们感觉很多特征对于结果是无用的,想剔除n中的无用特征。n个特征就有种去除情况(每个特征去或者保留),如果我们枚举这些情况,然后利用交叉验证逐一考察在该情况下模型的错误率,太不现实。因此需要一些启发式搜索方法。

第一种,前向搜索:

1初始化特征集F为空。

2扫描i1n

如果第i个特征不在F中,那么将特征iF放在一起作为(即

在只使用中特征的情况下,利用交叉验证来得到的错误率。

3从上步中得到的n中选出错误率最小的,更新F

如果F中的特征数达到了n或者预设定的阈值(如果有的话),那么输出整个搜索过程中最好的F,没达到转到2

     前向搜索属于wrapper model feature selectionWrapper这里指不断地使用不同的特征集来测试学习算法。前向搜索说白了就是每次增量地从剩余未选中的特征选出一个加入特征集中,待达到阈值或者n时,从所有的F中选出错误率最小的。

     既然有增量加,那么也会有增量减,后者称为后向搜索。先将F设置为{1,2,..,n},然后每次删除一个特征,并评价,直到达到阈值或者为空,然后选择最佳的F

     这两种算法都可以工作,但是计算复杂度比较大。时间复杂度为

第二种,过滤特征选择(Filter feature selection):

     过滤特征选择方法的想法是针对每一个特征i1n,计算相对于类别标签的信息量,得到n个结果,然后将n按照从大到小排名,输出前k个特征。显然,这样复杂度大大降低,为O(n)

     那么关键问题就是使用什么样的方法来度量,我们的目标是选取与y关联最密切的一些。而y都是有概率分布的。因此我们想到使用互信息来度量,对于是离散值的情况更适用,不是离散值,将其转变为离散值,方法在第一篇《回归认识》中已经提到。

     互信息(Mutual information)公式:

 

     0/1离散值的时候,这个公式如上。很容易推广到是多个离散值的情况。

     这里的都是从训练集上得到的。

     若问这个MI公式如何得来,请看它的KL距离(Kullback-Leibler)表述:

 

     也就是说,MI衡量的是y的独立性。如果它俩独立(),那么KL距离值为0,也就是说y不相关了,可以去除。相反,如果两者密切相关,那么MI值会很大。在对MI进行排名后,最后剩余的问题就是如何选择k值(前k)。我们继续使用交叉验证的方法,将k1扫描到n,取最大的F。不过这次复杂度是线性的了。比如,在使用朴素贝叶斯分类文本的时候,词表长度n很大。使用filter特征选择方法,能够增加分类器的精度。

4 贝叶斯统计和规则化(Bayesian statistics and regularization

     题目有点绕,说白了就是要找更好的估计方法来减少过度拟合情况的发生。

     回顾一下,线性回归中使用的估计方法是最小二乘法,logistic回归是条件概率的最大似然估计,朴素贝叶斯是联合概率的最大似然估计,SVM是二次规划。

     以前我们使用的估计方法是最大似然估计(比如在logistic回归中使用的):

     

     注意这里的最大似然估计与维基百科中的表述

       http://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E5%90%8E%E9%AA%8C%E6%A6%82%E7%8E%87

    有些出入,是因为维基百科只是将样本(观察数据)记为X,然后求P(X)的最大概率。然而,对于我们这里的样本而言,分为特征x和类标签y。我们需要具体计算P(X)。在判别模型(如logistic回归)中,我们看待P(X)=P(x,y)=P(y|x)P(x),而P(x)独立无关,因此最后的argmax P(X)argmaxP(y|x)决定,也就是上式。严格来讲并不等于样本X的概率,只是P(X)决定于最大化时P(X)也最大化。在生成模型,如朴素贝叶斯中,我们看待P(X)=P(y)P(x|y),也就是在某个类标签y下出现特征x的概率与先验概率之积。而P(x|y)x各个分量是条件独立情况下可以以概率相乘方式计算出,这里根本没有参数。因此最大似然估计直接估计P(x,y)即可,变成了联合分布概率。

     在该上式中,我们视参数为未知的常数向量。我们的任务就是估计出未知的

     从大范围上说,最大似然估计看待的视角称为频率学派(frequentist statistics),认为不是随机变量,只是一个未知的常量,因此我们没有把写成

     另一种视角称为贝叶斯学派(Bayesian),他们看待为随机变量,值未知。既然为随机变量,那么不同的值就有了不同的概率(称为先验概率),代表我们对特定的的相信度。我们将训练集表示成i1m。我们首先需要求出的后验概率:

 

     这个公式的推导其实比较蹊跷。第一步无可厚非,第二步中先看分子,分子中最完整的表达方式是。由于在分母中也会出现,所以会被约掉。当然作者压根就没有考虑,因为他看待P(S)的观点就是x->y,而不是(x,y)。再来看分母,分母写成这种形式后,意思是对所有的可能值做积分。括号里面的意思是,然后将其展开成分母的模样,从宏观上理解,就是在求每个样例的概率时,先以一定的概率确定,然后在的作用下再确定的概率。而如果让我推导这个公式,我可能会这样写分母,这样推导出的结果是。我不知道自己的想法对不对,分歧在于如何看待,作者是为每个样例都重新选定,而我是对总体样本选择一个

 

     在不同的模型下计算方式不同。比如在贝叶斯logistic回归中,

     

     其中p的表现形式也就是伯努利分布了。

     是随机变量的情况下,如果新来一个样例特征为x,那么为了预测y。我们可以使用下面的公式:

     

     由前面的公式得到。假若我们要求期望值的话,那么套用求期望的公式即可:

     

     大多数时候我们只需求得中最大的y即可(在y是离散值的情况下)。

     这次求解与之前的方式不同,以前是先求,然后直接预测,这次是对所有可能的作积分。

     再总结一下两者的区别,最大似然估计没有将视作y的估计参数,认为是一个常数,只是未知其值而已,比如我们经常使用常数c作为y=2x+c的后缀一样。但是的计算公式中含有未知数。所以再对极大似然估计求导后,可以求出

     而贝叶斯估计将视为随机变量,的值满足一定的分布,不是固定值,我们无法通过计算获得其值,只能在预测时计算积分。

     然而在上述贝叶斯估计方法中,虽然公式合理优美,但后验概率很难计算,看其公式知道计算分母时需要在所有的上作积分,然而对于一个高维的来说,枚举其所有的可能性太难了。

为了解决这个问题,我们需要改变思路。看公式中的分母,分母其实就是P(S),而我们就是要让P(S)在各种参数的影响下能够最大(这里只有参数)。因此我们只需求出随机变量中最可能的取值,这样求出后,可将视为固定值,那么预测时就不用积分了,而是直接像最大似然估计中求出后一样进行预测,这样就变成了点估计。这种方法称为最大后验概率估计(Maximum a posteriori)方法

     估计公式为

     

     一样表示的是P(S),意义是在从随机变量分布中以一定概率选定好后,在给定样本特征出现的概率积。

     但是如果让我推导这个公式的时候,我会这么做,考虑后验概率,我们的目标是求出最有可能的。而对于的所有值来说,分母是一样的,只有分子是不同的。因此。也就是的推导式。但这个公式与上面的有些不同,同样还是看待每个样本一个,还是总体样本一个的问题。

     与最大似然估计对比发现,MAP只是将移进了条件概率中,并且多了一项。一般情况下我们认为,实际上,贝叶斯最大后验概率估计相对于最大似然估计来说更容易克服过度拟合问题。我想原因是这样的,过度拟合一般是极大化造成的。而在此公式中多了一个参数,整个公式由两项组成,极大化时,不代表此时也能最大化。相反,是多值高斯分布,极大化时,概率反而可能比较小。因此,要达到最大化需要在两者之间达到平衡,也就靠近了偏差和方差线的交叉点。这个跟机器翻译里的噪声信道模型比较类似,由两个概率决定比有一个概率决定更靠谱。作者声称利用贝叶斯logistic回归(使用logistic回归)应用于文本分类时,即使特征个数n远远大于样例个数m,也很有效。

 

分享到:
评论

相关推荐

    人工智能AI、机器学习模型理解.pdf

    深度学习的模型有许多种,⼤家在 选择是⼀定要根据⾃⼰问题来选择模型,⽐如说CNN对处理图像信息就⾮常的有⽤,⽽RNN对处理序列⾮常在⾏。所以⼤家还是要对每种 算法都要了解清楚,选择合适⾃⼰的算法。 -----------...

    Musou系列游戏MOD工具v0.1

    选择"文件>>导入>>Import MusouEM"导入musouEM模型文件,选择"文件>>导出>>Export MusouEM"导出musouEM模型文件 BUG报告:jemizhuu@hotmail.com或jemizhuu@sina.com 转载请注明出处. Made by JemiZhuu(周士淳, zsword...

    转载别人的博客

    BlogEngine.NET博客系统v2.5源码 拥有非常好的分层架构,原生态支持xml作为数据库,也可采用mssql作为数据库,是学习asp.net非常难得的开源系统。 更新: - Multi-author支持 ...- 可以选择XML和SQL Server数据存储

    2000-2022年权益资本成本-股权资本成本-股权融资成本CAPM模型 包含构造Stata代码

    权益资本成本/股权资本成本/股权融资成本CAPM模型 持续更新,后续关注我后免费 获取更新版本 不管什么时候毕业或者发期刊用到,都能用到最新的数据 【原创整理,严 禁转载,转载必究】 参考文献 [1]陈少晖,陈平花....

    高清带目录pdf

    全书结构大致如下:【1~3章】介绍机器学习基本知识(绪论、模型评估与选择、线性模型)【4~10章】介绍一些经典而常用的机器学习方法(决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类、降维与度量学习...

    Supesite7.5酒店模板[包括:整站模板;广告添加说明;留言模型]

    2、后台选择模板为“0”模板。 3、根据自己需要更改LOGO及顶部图,位于\images文件夹。 4、在后台新增自定义广告位,指向960*80大小的图片广告。如果此前已经有自定义广告位(ID不等于1,则要在首页模板\templates\...

    多元线性回归.ppt

    转载的 多元线性回归.ppt 多元线性回归是简单线性回归的直接推广,其包含一个因变量和二个或二个以上的自变量... 内容安排: 多元线性回归模型与参数估计 回归方程和偏回归系数的假设检验 标准化偏回归系数和确定...

    python实现感知器

    上篇博客转载了关于感知器的用法,遂这篇做个大概总结,并实现一个简单的感知器,也为了加深自己的理解。 感知器是最简单的神经网络,只有一层。感知器是模拟生物神经元行为的机器。感知器的模型如下: 给定一个n...

    02-javaWeb-css$js.7z

    选择器★ 属性(了解) 字体 文本 列表 背景 尺寸 浮动 分类 框模型(理解) 扩展: 颜色取值 javascript JS的输出 js和html整合 js中变量声明 js的数据类型 js:事件驱动函数 函数定义——1 js中的事件...

    通信与网络中的系统仿真方法

    因此,仿真参数的选择必须是那些能够表征系统特征的关键参数,影响系统性能的次重要参数则尽量少地加入系统模型。参数的选择非常困难,一般是通过对系统的理论研究和参考实际的测试结果来选择参数的。  MATLAB擅长...

    精心整理的一份CSS学习笔记+CSS思维导图

    文章目录一、CSS简介二、选择器2.1 基本选择器:2.2 组合(复合)选择器2.3 选择器的优先级三、盒模型四、CSS思维导图 一、CSS简介 CSS全称:层叠样式表 (Cascading Style Sheets) 。 CSS作用:美化界面,布局页面,...

    SD卡学习(SDIO和SPI模式) - CSDN博客1

    摘要视图2016年10月23日 01:43:21分类:8115人阅读评论(0)收藏版权声明:本文为博主原创文章,未经博主允许不得转载。* * SD卡的操作模式:

    计算机二级C语言考试题预测

    今年9月份参加计算机二级考试的同学请转载 作者:天使~之戀 已被分享1次 评论(0) 复制链接 分享 转载 删除 下面的138道题目,在二级考试中命中率极高。 一、选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与...

    darknet_AlexeyAB-master.zip

    1.易于安装:在makefile里面选择自己需要的附加项(cuda,cudnn,opencv等)直接make即可,几分钟完成安装; 2.没有任何依赖项:整个框架都用C语言进行编写,可以不依赖任何库,连opencv作者都编写了可以对其进行...

    基于jsp的校园通讯录系统.zip

    同时用户还可以查看所有好友的日志信息,并可以对指定的日志进行转载以及分享的操作。 (5)相册管理功能:用户可以设置管理自己的相册,并可以对指定的相册进行上传照片的操作,所有已经删除的照片信息都可以进行...

    最好的asp CMS系统科讯CMSV7.0全功能SQL商业版,KesionCMS V7.0最新商业全能版-免费下载

    用户可以选择性的购买和安装所需功能模块,而且还可以根据自定义模型、自定义字段功能开发新的功能模块,如房产系统,企业调查,在线报名等系统以满足个性化需求。 4、 网站模板与程序分离,支持多种标签调用,...

    python数据结构与算法详解与源码

    版权声明:本文为CSDN博主「dwf1354046363」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dwf1354046363/article/details/119832814

    个人云平台Sandstorm.zip

    换句话说,Sandstorm 不仅向使用者提供一些服务器,还会让使用者选择他所使用的软件。也就是说:使用者所有的数据都储存在一个地方,而不是零散的分落在网上 如果开发者停止运行它们,APP也不会消失APP 的开发者...

    无线充电来“作妖”,这次不是iphone是智能灯-电路方案

    由于Sparrow控制器高度集成了各种常用的模块元件及电路,所以不需要繁琐复杂耗时的焊接,到手即玩轻松打造各种创客项目,非常适合没有焊接经验或想缩短项目开发时间及创客教育的人使用。...【转载自DF社区】

Global site tag (gtag.js) - Google Analytics