首页 > 其他 > 详细

机器学习公开课笔记第五周之机器学习系统设计

时间:2017-04-12 02:02:41      阅读:249      评论:0      收藏:0      [点我收藏+]

以设计垃圾邮件分类器为例,当我们设计机器学习算法时,先在24小时内设计出一个简单的算法,跑一遍训练数据,再根据数据的反馈结果(高偏差,高方差,或对某一类数据误判比例过高等等)调整我们的算法,反复迭代优化

一,提取特征

从大量垃圾邮件训练数据中找出出现频率最高的10,000到50,000个单词,以该单词是否出现为特征,出现为1,未出现为0

技术分享

 

二,提高分类器的准确性

  • 收集更多的数据
  • 设计新的特征 (如提取标题特征)
  • 初始化你的输入数据 (如识别出故意拼错的单词).

每一个算法性能的提高必须具体问题具体分析,没有行之四海皆准的方法提高机器学习的准确性,

 

三,误差分析(提高算法准确性的分析方法)

解决机器学习问题一种推荐方法:

  • 开始设计一个简单的算法,尽快实现它,然后用交叉验证数据集验证它
  • 绘制学习曲线,根据学习曲看是否需要更多的数据,特征等等
  • 手动检查那些再交叉验证集合里被错误分类的数据,观察他们是否有共性

如,我们有500封信件然而我们的算法把其中100封分错了类,观察这100封邮件,我们发现大多数邮件尝试偷取密码,我们就可以加入是否偷取密码这个特征

必须以算法准确率为优化的指标,每次优化必须看准确率为标准

技术分享

四,偏斜类(Skewed Classed)

当训练数据中类型的分布比例差距较大时,如01分类中0为0的比例是99%,1的比例是1%,准确性这个量化指标就不够用了,

因为不用机器学习算法直接预测y=0,准确性就高达99%,这个时候就需要另外另个量化指标了查准率(Precsision)和召回率(Recall),计算查准率和召回率时分类为1的类为比例极少的类

  Actual 1 Actual 0
Predict 1

True Positive

False Positive
Predict 0 False Negative True Negative

 

\(Precision = \frac{True Positive}{Predicted} = \frac{True Positive}{True Positive + False Positive}\)

\(Recall = \frac{True Positive}{Predicted} = \frac{True Positive}{True Positive + False Negative}\)

 查准率和召回率时一个问题的两面,我们一般我们很难做到同时做到高查准率和高召回率,一般取其平衡

一般情况下我们可以通过修改\(h_\theta(X)\)的分类阈值调整查准率和召回率,

\(h_\theta(X) \geqslant 0.5 \Rightarrow h_\theta(X) \geqslant 0.7\),查准率提高,召回率降低(千真万确)

\(h_\theta(X) \geqslant 0.5 \Rightarrow h_\theta(X) \geqslant 0.3\),召回率提高,查准率降低(宁杀错,勿放过)

技术分享

那如何自动取舍查准率和召回率来评估算法性能?\(2\frac{PR}{P+R}\)

 

技术分享

 

机器学习公开课笔记第五周之机器学习系统设计

原文:http://www.cnblogs.com/xchaos/p/6697039.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!