【Machine Learning】11 机器学习系统设计(Machine learning system design )

 

11.1 Prioritizing what to work on: Spam classification example

设计机器学习系统时首先要做什么?我们以垃圾邮件分类器为例:

挑选一些词来作为垃圾邮件的特征有出现的为1否则为0.这里的数据x是100维的。

  如何减少分类器的误差呢?列出了4种方法,如何选择这些方法呢?\downarrow

11.2 Error analysis

在进行算法设计时,我们先去实现一个简单的算法,然后通过构造它的学习曲线来决定做哪些改进。在交叉验证集上进行误差分析,观察对哪些例子的处理效果不好,再针对这些例子进行算法改进。

   

例如这个垃圾邮件分类的误差分析,在100个被错误分类的邮件中,我们观察这些邮件的特征尝试提取出新的特征,但误差分析的结果并不一定能改进你的算法,你需要通过试验后的数值分析来判断算法改变后是否对效果有改进。比如,增加这个特征错误率了5%,不增加是几%,数值化评估。

所以总的来说,还是要尽快实现一个算法即使它比较简单效果一般,但实验后我们通过它犯的错找到办法改进它,不要提前去判断一些事,没有基于实验的做法往往不正确。

11.3 Error metrics for skewed classes

skewed classes偏斜类,就是分类问题中,正反两类的比例悬殊的情况。

 

cancer分类问题中,我们学习的误差有1%,看起来还不错,但实际上样例只有0.5%cancer,所以一个傻瓜式分类(把所有人都划分到没有cancer)误差只有0.5%。所以在这种偏斜类分类问题中,用精度来判断分类模型质量是否提升并不准确,比如从99.2%提升到99.5%,确实精度提升了,但是否改进的分类模型是否往傻瓜式上靠了呢?这样并不能得到一个好的分类模型。

  我们列出实际和预测的2*2的表格,查准率是true pos/predicated pos,召回率是true pos/actual pos,我们可以看出这两个比率都是越高越好。

那么对于上面的傻瓜式分类,它的召回率为0,因为它不会预测阳性,这样阻止了算法欺骗我们。

需要注意precision和recall的定义:一般是y=1这种想要去测的少数类。

11.4 Trading off precision and recall

设置不同的阈值后,我们会得到不同的查准率和召回率。如设置阈值为0.9,那么我们很确信预测结果正确才告知,这样预测的查准自然很高,但同时只预测了很少部分阳性,召回率自然低了;相反设置阈值为0.1,我们进行更多大胆的预测,这样召回率自然高了,但是预测有太多不准确,查准率降低。

所以在一个较高查准或召回率前要如何选择呢?

平均值并不能排除3这种算法,我们采用F1 Score来判断。

测试不同的临界值,并在交叉验证集上算出哪个的F1 Score高。

11.5 Data for machine learning

我们看到这些算法都随着数据量增大准确度提高,这可能出现一个“劣等算法”在大数据的情况下比“优等算法”效果好的情况。

所以会出现“It’s not who has the best algorithm that wins.   It’s who has the most data.”这种言论。

那么这种说法何时正确呢

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值