Noise

在x和y都可能有noise

对于没有noise的情况,x~P(x), f(x)=h(x),但是如果现在有noise,x~P(x), y~P(y|x)(y是真正的label,只是一定概率上会变,因为有noise,这个概率是P(y|x))

联合起来,就有(x,y)~P(x,y) i.i.d.

P(y|x): target distribution

如果P(+1|x)=0.7,P(-1|x)=0.3,那么有

理想的mini-target f(x)=+1,noise level=0.3

对于deterministic target f: a special case of target distribution where P(y|x)=1 for y=f(x) and P(y|x)=0 for y not = f(x)

衡量Error的方法:

Pointwise Error Measure(对于每一个x去求err)

用ỹ表达g(x)。pointwise error measure有两种方法

ideal mini-target f(x)是通过target distribution P(y|x)和err共同决定的。

e.g:

对于target distribution如上给定,如果error measure用0/1来表示,mini-target就是选择target distribution最大的那个,如果是squared error,mini-target就是target distribution的加权平均值。
一种Error Measure

e.g.

以指纹识别为例子,当你有权限操作一台计算机的时候,系统却把你的指纹错误的认为没有权限,这种情况是false reject,当其他没有权限的人去操作电脑的时候,系统却错误的认为该人有权限,这种情况是false accept.这两种都属于error,如果是0/1 error的话,这两种情况是等价的。

但是往往现实不是这样,有的时候希望系统对false reject的惩罚会更大,比如超市错误的拒绝了一个拥有权限的客户,此时超市可能会失去这个客户。这个时候false reject 应该更大。又或者,如果此时有人要入侵电脑,他的指纹被判断成可以接受了,这种情况可能会造成资料的泄漏,此时希望系统对false accept惩罚的更大。

因此可以看出,和之前的0/1 error,把错误全部等价啊看待。

但是,往往,我们并不知道应该怎样设计error,比如超市并不知道怎样惩罚系统误判了正确的客户。因此,这里引入algorithmic Error Measures: err “hat"
既然err有权重了,那么计算Ein和Eout也要考虑权重了,

对于y=-1而h错误的predict成了+1的情况,就是false accept的时候,要变成1000.

通过PLA,可以对Ein最小化,因为加上了权重,所以这里的Ein加上了一个w表示。
另外也可以通过pocket algorithm去minimize Ein^w,但是在pocket algorithm过程中每次的循环都要检测当前的Ein和新产生的h带来的Ein哪个大,这里用的Ein应该是用Ein^w。

现在的问题是怎样将原来的Ein,也就是用0/1 error计算的Ein,与新的带权重的Ein^w联系在一起呢?

解决方法:把y=-1,但是错误的认为成+1的点,复制1000倍。这样用原来的不带权重的Ein就可以产生带权重的Ein对original data一样的效果了。

但是如果真的去复制1000倍的话,耗时耗资源,此时使用virtual copying的办法。既然在false accept的点上需要有1000倍的重视程度,那么干脆在pocket algorithm随机选择点做correction的时候,把选到这些点的概率提高1000倍就好了。

Error measure的更多相关文章

  1. Noise,Error,wighted pocket Algorithm

    错误衡量(Error Measure) 有两种错误计算方法: 第一种叫0/1错误,只要[预测≠目标]则认为犯错,通常用于分类:通常选择,错误比较大的值作为y˜的值 第二种叫平方错误,它衡量[预测与目标 ...

  2. 机器学习基石8-Noise and Error

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课,我们主要介绍了VC Dimension的概念.如果Hypothese ...

  3. 理解机器为什么可以学习(五)---Noise and Error

    之前我们讨论了VC Dimension,最终得到结论,如果我们的hypetheset的VC Dimension是有限的,并且有足够的资料,演算法能够找到一个hypethesis,它的Ein很低的话,那 ...

  4. 【转载】VC维的来龙去脉

    本文转载自 火光摇曳 原文链接:VC维的来龙去脉 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number o ...

  5. Spark随机深林扩展—OOB错误评估和变量权重

    本文目的 当前spark(1.3版)随机森林实现,没有包括OOB错误评估和变量权重计算.而这两个功能在实际工作中比较常用.OOB错误评估可以代替交叉检验,评估模型整体结果,避免交叉检验带来的计算开销. ...

  6. 台大《机器学习基石》课程感受和总结---Part 2 (转)

    转自:http://blog.sina.com.cn/s/blog_641289eb0101e2ld.html Part 2总结一下一个粗略的建模过程: 首先,弄清楚问题是什么,能不能用机器学习的思路 ...

  7. spark Using MLLib in Scala/Java/Python

    Using MLLib in ScalaFollowing code snippets can be executed in spark-shell. Binary ClassificationThe ...

  8. 踩刹车——regularization

    从一个问题说起: 当我们使用H10去拟合曲线的时候,其实我们只想要H2的结果.如果从H10变回到H2呢? 所以我们只需要添加上限制条件:w3=...=w10=0即可.现在呢,我们可以放宽一点条件:任意 ...

  9. 加州理工大学公开课:机器学习与数据挖掘_线性模型 II(第IX类)

    课程简要: 主要内容包括线性分类和回归分析简单的回忆.除了Logistic回归分析,具体解说误差测量和算法三方面,同时归纳法的非线性变换的分析. 课程大纲: 1.Review 2.Nonlinear ...

随机推荐

  1. GDPR或使全球域名whois信息被隐藏

    什么是GDPR? GDPR 全称为 General Data Protection Regulation,是欧盟 2016 年 4 月通过的一项通用数据保护条例(或称“一般数据保护法案”),是 199 ...

  2. 位运算 进制转化 STL中bitset用法

    2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...

  3. helloworld:一个完整的WCF案例

    服务端 1.创建一个空的解决方案:WCFDemo: 2.创建一个宿主控制台程序:Host 3.右击Host项目,选择“添加”--“新建项”,选择“WCF服务”创建名为“Service1.cs”的服务 ...

  4. Maven 一段时间知识小结2

    父 Pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  5. input输入框延时发送请求问题

    同样是面试遇到的问题,input输入框,怎么减少发送请求次数. 键盘抬起触发事件,首先清除定时器,再开启定时器.只要小于1s的连续输入,都会先把上一次定时器清除.停顿一秒后,开始执行请求事件(此处为c ...

  6. Struts2 入门实例

    一.最简登录 Demo:login.jsp——web.xml——struts.xml——LoginAction.java——struts.xml——index.jsp 1.下载 Struts2 框架: ...

  7. Java 基于javaMail的邮件发送(支持附件)

    基于JavaMail的Java邮件发送Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用户 ...

  8. mysql 命令行参数说明

    mysql --help -h : 主机名 -u : 用户名 -p : 密码 -P : 端口,不写默认(3306) -D :指定数据库(一般不指定) -e :查询语句 --column-names : ...

  9. 理解django的多对多ManyToManyField

    转自:http://luozhaoyu.iteye.com/blog/1510635 对于第一次碰到django这样类activerecord的ORM,初学者可能比较疑惑的是ManyToManyFie ...

  10. js中常用的字符串方法

    1,基础方法 charAt();返回该位置的字符,类似数组下标: substring();返回选中的字符,两个参数是下标. slice();参数是是一个正数,返回该数之后的剩余字符串:参数是负数,返回 ...