吴恩达机器学习[12]-机器学习系统设计

本节学习目标:介绍设计机器学习系统面临的主要问题,并给出相关建议。

确定执行的优先级

以垃圾分类器(spam classifier)为例。如何通过监督学习算法(supervised learning)判断邮件是否为垃圾信息呢?
在这里插入图片描述

  • 1、选择特征x,设置标签y。
    在实际应用中,一般选择训练集中出现频率最高的n(一般在10000-50000之间)个单词,然后选择其为特征向量。
    在这里插入图片描述
  • 2、优先级考虑。如何在有限时间内,让垃圾邮件分类器具有高精确率(high accuracy)和低错误率(low error)?选择合适的方法。
    在这里插入图片描述

误差分析 Error analysis

学习目标:介绍误差分析( Error analysis)的概念。学习如何使用更系统的方式,从上述方法中做出选择。

下面展示从事研发机器学习产品或者开发机器学习应用时的推荐途径

  • 速选择合适的算法实现需求。(一般一天)
  • 使用学习曲线辅助做决定。
  • 误差分析。如垃圾分类器问题,可以通过交叉验证集情况,观察被算法错误分类的邮件特征。研究经常被错误分类的垃圾邮件和非垃圾邮件具有什么共同规律,从而得出现存系统存在哪些优缺点(或应该设计怎样的新特征),然后因而得到针对性解决方法。
    在这里插入图片描述
    带着误差分析的思想,再看垃圾分类问题。遇到错误分类情况严重问题时,做法可借鉴下图。
    在这里,误差分析即手工检查算法出现的失误的过程。通过这样,能快速找到问题所在,并对症下药。
    在这里插入图片描述
    此外,在改进机器学习算法时,另一个技巧为:保证自身对机器学习算法有一种数值估计的方法。也就是说,在改进机器学习算法时,能够返回一个数据评价指标,来估计算法执行的效果。
    下面再看一个例子。是否应该该discount、discounts等当做同一个单词(已有相关软件,如 porter stemmer)?这种做法可以导致将类似于universe、university的两个完全不同含义的单词视为同一个单词。
    解决这个问题最快的方法是:尝试使用这个软件,观察分类效果如何。为此,需要找到一个评估算法执行效果的指标。很容易会想到使用交叉验证集,观察交叉验证的错误率,使用后误差减少快说明使用更好。这种使用单一规则的数值评价指标称为交叉验证错误率(cross validation rate)
    在这里插入图片描述
    总之,面对机器学习新问题。
  • 首先使用简单的算法快速实现需求
  • 然后在交叉验证集上结合误差分析找到导致效果不好的关键所在,并设置针对性解决办法。
  • 之后实践解决办法结合单一规则的数值评价指标评估分类效果(如 误差度量值)

不对称性分类的误差

引入:有了算法的评估(context of evaluation)和误差度量值(error metrics),需要重视的是使用一个合适的误差度量值。这有时会对学习算法造成一个非常微妙的影响,这就是偏斜类问题(skewed classes)。

回归癌症分类问题。如果在测试集上测试结果为:1%的错误率,也就是99%的正确率。这么一看,结果似乎不错。但如果在测试集上发现只有0.5%的患者有真正患有癌症,1%的错误率似乎不再显得那么好了。或者再看下图程序,直接忽略x值,输出y值全为0(非机器学习算法)。此时,错误率为0.5%,效果好好于1%。
这种现象经常发生在正例、负例的比率非常接近于一个极端的情况中。这种正例、负例比率接近极端的情况,称为偏斜类(skewed classes)。这种情况下使用分类误差(或分类精确度)作为来估计度量指标,不能很好地衡量算法。
在这里插入图片描述
对于偏斜类,可以使用查准率(precision)和召回率(recall)衡量算法。
利用分类结果混淆矩阵如图。

预测结果 正例预测结果 反例
真实情况 正例TP (真正例)FN(假反例)
真实情况 反例FP(假正例)TN(真反例)

准确率(precision,又称查准率),预测为正例的样本中,确实为正例的比例。 P = T P T P + F P P = \frac {TP} {TP+FP} P=TP+FPTP
召回率(recall,又称查全率),确实为正例的样本中,被预测出来的比例。 R = T P T P + F N R = \frac {TP}{TP+FN} R=TP+FNTP
在这里插入图片描述

查准率和查全率的权衡 Trading off precision and recall

引入:大多数情况下,需要维持查准率和查全率的相对平衡。为此需要推出新指标。

继续以癌症为例。为了保证较高的查准率或查全率,可以分别设置临界值为0.7或0.3。
对于大多数回归算法,可以画出以查全率为横坐标、查准率为纵坐标的曲线—P-R曲线(R-P图、PR图;线 R-P曲线、PR曲线)。具体画法即:根据学习器的预测结果,对样例进行排序。排在前面的为学习器认为“最可能”是正例的样本,后面……“最不可能”……。按此顺序逐个将样本作为正例进行预测(也就是取不同的临界值),每次计算R、P,得到PR图。
在这里插入图片描述
那么,如何自动选取临界值,使得查全率和查准率达到一个平衡点呢?

  • 一种做法是计算查全率和查准率的平均值,看看哪个模型有最高的均值。这种方法无法处理高查全率低查准率、以及高查准率低查全率的情况。因为此时的均值很可能不错,但实际上这种模型是不可行的。
  • 另一种方法是计算查全率和查准率的调和平均值—— F 1 F_1 F1值( F 1 F_1 F1 Score,又称 F值)。 F 1 S c o r e = 2 P R P + R F_1 Score=2 \frac {PR}{P+R} F1Score=2P+RPR
    在这里插入图片描述

机器学习数据 Data for machine learning

学习目标:讨论机器学习系统设计中的另一个重要问题——训练数据量的选择。

如下图所示,随着训练数据量的增加,不同的算法的性能可能都越来越好;劣质算法 甚至比 优质算法 更好。那么,在已有的情况下,如何判断上述结论的真或假呢?
在这里插入图片描述
下面看两种假设。增加训练数据量,前者可行、后者不可行。
一般可通过下述假设来判断增加训练数据是否可行:给定一个输入特征向量x,给定这些特征值,以及相同的可用信息和学习算法。如果我们去找个领域的人类专家分,这个人类专家能够准确自信的预测出y值吗?如一个价格方面的专业,能够仅仅通过房屋的面积准确而自信的预测出房价吗?
在这里插入图片描述
假设特征x已经拥有了足够的信息来预测y值,训练数据量也很大。此时即使使用一个拥有大量参数的学习算法,也不容易出现过拟合现象。此时,训练误差将很小,测试误差将接近于训练误差,也就是说测试误差也会很小。
对于偏差。通过确保拥有一个足够多参数的学习算法,能够使得我们得到一个较低偏差的算法;对于方差,通过确保拥有足够大的训练集,能够使得我们得到一个较低方差的算法。结合这两个指标,我们最终可以得到一个低误差、低方差的学习算法。
特征拥有足够的信息量、假设函数足够优秀,是保证低误差的关键所在。
在这里插入图片描述
总之,可以通过下述两个问题衡量是否需要大的训练样本:

  • 1、给定一个输入特征向量x,给定这些特征值,以及相同的可用信息和学习算法。如果我们去找个领域的人类专家分,这个人类专家能够准确自信的预测出y值吗?
  • 2、我们是否能得到一组庞大的训练集,并且在这个训练集中训练一个有很多参数的学习算法?
  • 实际上,无法实现这两点时,也可以得到一个性能很好的学习算法。

参考链接
网易版吴恩达机器学习课程
吴恩达机器学习 网易云课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值