机器学习之Validation(验证,模型选择)

  对于机器学习的模型选择来说,即使只是对于二元分类,我们已经学习了很多方法,比如PLA,LR等;很多学习算法都是可迭代的,需要决定迭代次数;你可能还需要决定每一次迭代走多大,例如梯度下降;或者有很多的转换可以选择,例如线性、二次等;同时规则化又有很多的选择L1,L2;再来规则化到底要加多强的λ。况且这些选择是组合起来的,某种程度上来说是组合爆炸的,那么我们怎么做出正确的选择?

  那么对于以上两个模型,你会选择哪一个模型呢?也许你会说,可以根据自己视觉上的判断来选择模型,但是我们必须注意到,当选择的模型不是二元的,而是多元的时候,我们就不能通过视觉上的判断来选择了。还有一点,如果通过视觉上的判断来选择,我们就必须考虑到自己脑袋里那个强大的VC维模型,那么我们就不见得有多大的好处。

  如果以上方法不行的话 ,那我们是不是可以选一个Ein最小的方法呢?

  我们可以把待选择的模型跑在我们的资料上,那么我们就可以通过选择Ein最小的模型来完成机器学习。

  那么,这么做有什么问题呢?

  首先,我们可以想象,在这样的设定之下,我们肯定会选择复杂度很高的模型,以减小Ein,就会可能造成overfitting(过拟合)。

  其次,这样选择模型,相当于在1班中选择一个最好的学生s1,在2班中选择一个最好的学生s2,然后再选择出s1和s2中相对较好的学生。这无疑增加了模型复杂度。

  那我们可不可以通过选一个Etest最小的方法呢?通过一个测试集来判断Etest的大小,从而选出较好的模型?

  看起来这是一个很好的方法。但是问题是我们能找到测试资料吗?这就好像测试考试,在正式考试之前,你会得到考卷吗?



  我们今天是要找到一个中间方式,就是把一部分资料先拿出来当作测试资料,以保证测试资料不被污染,当要进行验证时,再把这部分资料拿出来进行测试!

  我们选出K个数据用来进行验证,这K个数据的误差记作Eval,称为验证误差,那么剩下的N-K个数据用来训练模型,记作Dtrain;

  一般来说,K的值大约为整个数据集数量的五分之一。

K=N5



机器学习系列之机器学习之Logistic回归(逻辑蒂斯回归)

时间: 2024-09-20 14:53:06

机器学习之Validation(验证,模型选择)的相关文章

模型选择、特征选择及贝叶斯正则化

1 问题      模型选择问题:对于一个学习问题,可以有多种模型选择.比如要拟合一组样本点,可以使用线性回归,也可以用多项式回归.那么使用哪种模型好呢(能够在偏差和方差之间达到平衡最优)?      还有一类参数选择问题:如果我们想使用带权值的回归模型,那么怎么选择权重w公式里的参数? 形式化定义:假设可选的模型集合是,比如我们想分类,那么SVM.logistic回归.神经网络等模型都包含在M中. 2 交叉验证(Cross validation)      我们的第一个任务就是要从M中选择最好

jQuery插件学习教程之SlidesJs轮播+Validation验证_jquery

SlidesJs(轮播支持触屏)--官网(http://slidesjs.com) 1.简介 SlidesJs是基于Jquery(1.7.1+)的响应幻灯片插件.支持键盘,触摸,css3转换. 2.代码 <!doctype html> <head> <style> /* Prevents slides from flashing */ #slides { display:none; } </style> <script src="http:/

云计算中用户行为习惯验证模型研究

云计算中用户行为习惯验证模型研究 郭福亮 周钢 崔良中 在分析云计算安全现状的基础上针对云计算服务模式的特征建立了一种基于随机 网 模型 的 用户行为验证模型 引入用户访问资源或调用服务的行为习惯度 主要包括选择概率偏离度和服务占用时间两个 度 量此模型利用用户访问习惯度进行身份验证 以此来访问用户资源并调用服务行为是一种有效的云计算用户行为验证技术 且实例分析表明其具有很好的实用性. 云计算中用户行为习惯验证模型研究

在系统中使用Bean Validation验证参数

为什么要使用Bean Validation?  当我们实现某个接口时,都需要对入参数进行校验.例如下面的代码 public String queryValueByKey(String parmTemplateCode, String conditionName, String conditionKey, String resultName) { checkNotNull(parmTemplateCode, "parmTemplateCode not null"); checkNotNu

struts1-struts2项目 validation验证

问题描述 struts2项目 validation验证 在struts2项目中可以用struts1的验证框架来验证表单吗

Silverlight实例教程 - Validation验证系列汇总

转自http://www.cnblogs.com/jv9/archive/2010/09/27/1836394.html Silverlight Validation验证系列教程,详细讲解Silverlight Validation验证机制,结合实际例程解释其原理和用法. 该系列适合开发Silverlight企业级项目开发人员参考阅读. 如果您在阅读中有不明之处,欢迎留言,一起探讨学习. 为了方便大家阅读Silverlight实例教程Validation验证系列,这里列出其文章列表.   Sil

ASP.NET中Validation验证控件正则表达式特殊符号的说明_实用技巧

RegularExpressionValidator控件表达式说明: 方括号"[ ]"用与定义可接受的字符.[abc123] 表示控件只能接受 a,b,c,1,2,3 这6个字符: 反集合符号 " ^ "用于定义不可以接受的字符.[^a-h] 表示控件除了 a 到 h 8个字符外,都可以接受: 花括号"{ }"定义必须输入的字符个数.{6}表示只能输入6个字符 : {6,}表示必须输入6个以上,无上限 : {2,6} 表示必须输入2至6个字符:但

struts2 validation验证框架 建立的步骤。

问题描述 比如一个注册页面.对用户输入的姓名密码等数据的类型和长度进行验证.环境struts2我只知道要新建一个validation.xml并在里面书写代码有前辈知道建立一个完整的validation验证框架步骤是怎么的呢?需要在什么地方(jspjava类web.xmlstruts.xml)书写什么代码?只用写出每个地方的关键代码久可以了谢啦.. 解决方案 解决方案二:有个简单的办法,可以直接在action中添加一个validate方法就可以进行验证了,在并在jsp页面弄一个错误提示区域就可以了

《计算复杂性:现代方法》——第一部分 基本复杂性类 第1章 计算模型——为什么模型选择无关紧要 1.1 计算的建模:你真正需要了解的内容

第一部分 基本复杂性类 第1章 计算模型--为什么模型选择无关紧要 初看起来,为计算建立数学模型可谓难上加难.这是由于,历史上人类在解决各种计算任务的过程中用尽了各种各样的方法--从直觉和灵感到算盘或计算尺,再到现代的计算机.此外,自然界中其他生物或系统也时刻需要处理各种计算任务,而它们的解决之道也是纷乱繁杂.怎样才能找出一个能抓住这些计算方法共性的简洁的数学模型呢?如果再考虑到本书要关注的计算效率问题,则建模问题就更加无从下手了.考虑计算效率问题似乎必须小心地选择计算模型,因为即便是孩童也知道