林轩田机器学习基石笔记14:Validation
0. 前言
之前的课程讲解了为了避免overfitting,可以使用regularization方法来解决。在之前的EinEinE_{in}上加上一个regularizer,生成EaugEaugE_{aug},选择合适的λλ\lambda将其最小化,通过减小模型复杂度来增加泛化能力。今天将会介绍另一种增加泛化能力的方法:Validation。
1. Model Selection Problem
- 在机器学习中,模型选择一直是一个比较麻烦的问题。首先是我们选择算法,有PLA、Pocket、逻辑回归、线性回归一堆算法可以挑选,选完算法之后是迭代次数T的选择,之后是学习速率η的选择,接着是模型特征转换Φ的选择然后是正则化regularizer的选择,有L2,L1等等;最后是正则化系数λ的选择。不同的搭配,有不同的机器学习效果。我们的目标就是找到最合适的搭配,构建最好的机器学习模型。
- 我们可以做出一个独立于训练样本的测试集,分别对每个模型进行测试,选择EtestEtestE_{test}最小的模型。测试集需要从训练集中分离出来,前提是两者是独立同分布的。
2. Validation
- Validation过程:讲已有的数据集D分成两部分:测试集DvalDvalD_{val}和训练集DtrainDtrainD_{train}。对M个分类器分别对测试集和训练集进行分类,最后得到每个分类器的EvalEvalE_{val}和EtrainEtrainE_{train},其中在测试集中表现最好的分类器(EvalEvalE_{val}最小)为最好的分类器。
3. Leave-One-Out Cross Validation
- 留一交叉验证:使用训练集对分类器进行训练过之后,使用每一个数据作为测试集进行测试,得到一个误差enene_n,对所有数据便利一遍并取平均值,得到平均误差ElopvalElopvalE_{lopval}此为留一交叉验证。
- error 与特征数量的关系如下图所示:
EinEinE_{in}:已有数据误差
EoutEoutE_{out}:泛化的数据误差
EcvEcvE_{cv}:留一交叉验证误差
可以看到我们只要保证EcvEcvE_{cv}尽可能小,就能近似的达到EoutEoutE_{out}尽可能小。
4. V-Fold Cross Validation
留一交叉验证的缺点:
- 计算量:有N个数据,就要计算N次。
- 稳定性:如果是个二分问题,预测本身存在不稳定的因素,结果会存在很大的跳动,稳定性不好。
改进方法:V折交叉验证:讲数据先分成几分,比如N=1000,取V=10,那么数据分成十份、每份数据100个样本。每一份的误差为其中样本的平均误差,最终结果为每一份的平均误差。这么处理之后,有更强的稳定性且计算量减少了10倍。
5. 总结
这一节课主要讲解了Validation方法,即讲样本分为训练样本和测试样本。比较了留一交叉验证和V-折交叉验证方法,其中V-折交叉验证是最常用的验证方法。
林轩田机器学习基石笔记14:Validation相关推荐
- 林轩田机器学习基石笔记5 - Training versus Testing
Recap and Preview 机器学习流程图 第一节课,介绍机器学习是要找到最好的g,使g≈f(目标函数),保证Eout(g)≈0.第二节课,找方法使Ein≈0,如PLA和pocket.第四节课 ...
- 林轩田机器学习基石笔记6 - Theory of Generalization
Restriction of Break Point 四个成长函数与break point: 假设一个hypotheses,它的break point是2.那么当N=1的时候可以取到两个dichoto ...
- 林轩田机器学习基石笔记(第6节)
第5节主要介绍了机器学习与统计学之间的关系,不用做太多了解,所以也可以跳过,直接进入本节. 今天主要学习的问题就是如何让机器解决是非题,仍然以银行发信用卡为例,就是根据客户提交的资料去判断要不要给该客 ...
- 林轩田机器学习基石笔记(第10-13节)——机器学习的分类
第10节主要讲到了多元分类(Multiclass Classification)的概念. 第11节主要简单介绍了监督学习(Supervised).非监督学习(Unsupervised).半监督学习(S ...
- 林轩田机器学习基石笔记3:机器学习分类
笔者正处于学习阶段,任何问题欢迎指正. 0. 前言 机器学习通过样本输出维度,输入维度,学习方法等可以分成许多类别,这篇文章主要屡一下这些关系,首先看一下我做的思维导图,下面我会对每一种类别进行介绍. ...
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 林轩田机器学习基石笔记(第23-24节)——上限函数Bounding Function
本节我们讨论上限函数,所谓的上限函数就是,成长函数露出Break Point的点.只要我们知道了该点的值,就可以知道Hypothesis Set最多可以画多少条Dichotomy. 第20节的时候我们 ...
- 林轩田机器学习基石笔记2 - Learning to Answer Yes/No
Perceptron Hypothesis Set 感知器,一个具体的例子:评定要不要给用户信用卡,给(y=+1),不给(y = -1) xi:维度 wi:权重 threshold:阈值 简化符号,将 ...
- 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...
最新文章
- 安装Live communication server 2005存档服务
- DCMTK:类DcmOther64bitVeryLong的测试程序
- html多个盒子重叠浮动,如何让浮动后的多个盒子水平居中
- 关于多线程的一点感想
- 2018年工业机器人销量排位_2020年全球工业机器人现状与竞争情况 中国为全球最大供应国...
- SAP UI5 应用开发教程之六 - 了解 SAP UI5 的模块(Module)概念
- 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
- “四不像”病毒冒充多款知名软件 窃取电脑隐私
- 剩余 大小 查看内存_JVM的内存分配策略以及进入分代的条件
- 【Python】logging内置模块基本使用
- 信用更正和贷方剩余数量
- 尴尬了!迪士尼官方声明:从未与VIPKID有任何层面的业务合作关系
- SLAM_信息矩阵协方差矩阵
- python实现sip协议_SIP协议的常见命令 - HouWeiGui的个人空间 - OSCHINA - 中文开源技术交流社区...
- __stdcall的作用及今天的坑
- 随机产生一个五位数以内的数
- matlab提取电压基波分量,有源电力滤波器三种基波提取方法的对比分析
- 四种最常见路由协议 RIP、IGRP、OSPF和EIGRP。
- python并发编程之semaphore(信号量)_python 之 并发编程(守护进程、互斥锁、IPC通信机制)...
- 分享通过tensorflow证书考试的经验
热门文章
- 含文档+PPT+源码等]精品基于PHP实现的商城电商网站[包运行成功]购物商城计算机毕设项目源码
- 内置前放声发射传感器AE144SA40-BNC 变压器局部放电传感器
- vhr微人事系统学习-(2)springboot
- win10系统还原卡在“你好..”和无法打开这个应用无法使用内置管理员的解决办法
- spring架构生成二维码
- 友善之臂NanoPC-T3 内核编译 遇到问题
- macbook pro链接WiFi成功但是不能上网
- 2021.7.15 jzoj题解与反思(2)
- 2021-07-15 【普及组】模拟赛C组总结
- Android之ActivityManager