吴恩达《Machine Learning》-Machine Learning System Design机器学习系统设计(十一)

Prioritizing What to Work On确定工作的优先顺序

建立垃圾邮件(拼写错误)和非垃圾邮件的监督学习分类器
在这里插入图片描述
在这里插入图片描述
如果数据中存在此单词,向量中标为1。如果数据中不存在此单词,向量中标为0。
对于邮件特征,我们经常挑选出频率高的单词,而不是手动根据经验选择100个单词。

减少错误率的方法(不一定都有效,具体问题具体分析)

在这里插入图片描述
在这里插入图片描述
1.收集大量的数据,也就是样本,来增大我们的训练量。(例如有一个“honeypot project”,故意将假的邮箱地址泄露给发垃圾邮件的人,这样就可以得到大量的垃圾邮件训练样本了)
2.根据邮件来源的路径信息增加更复杂的特征变量或者从邮件的标题或者正文内容构造更复杂的特征变量。
3.构造更加复杂的算法。(例如自动纠正单词拼写的错误)

练习题:

在这里插入图片描述
在这里插入图片描述
选择(A,D)
解释:
A.我们很难知道哪一种解决办法是最有效的,正确。
B.C.是解决问题的一种方法,但是不一定有效。
D.直觉不是一种好办法,正确。

Error analysis误差分析

在这里插入图片描述
1.从一个简单的算法开始,快速实现它,并在早期使用交叉验证数据测试它。
2.绘制学习曲线以决定更多的数据、更多的特性等是否有帮助。
3.手动检查交叉验证集中的中的错误发生的原因,并尝试找出导致大多数错误的趋势。

在这里插入图片描述
对于分错的数据,
(1)查看其邮件的类别,明确提高方向。 本例中钓鱼邮件 steal passwords类型邮件很多,故此为努力方向。
(2)查看那个特征可以帮助提高算法准确率。不寻常的标点显示为更多的垃圾邮件。

The importance of numerical evaluation数值评价的重要性

在这里插入图片描述

练习题:

在这里插入图片描述
选择(C)
为什么选用交叉验证集来计算Jcv(θ),而不是采用测试集来计算Jtest(θ)
C.如果我们通过检查测试集来开发新的特性,那么我们最终可能会选择专门为测试集工作良好的特性,因此jtest(θ)不再是我们如何很好地概括为新示例的一个很好的估计。

我们上面说评估一个模型的好坏,通常使用误差分析可视化,即把预测的准确率(Accuracy)显示出来,其实这样是有缺陷的。这种误差度量又被称为偏斜类(Skewed Classes)问题。

在这里插入图片描述
举个例子:假如我们做癌症分析,最后得出该算法只有1%的误差,也就是说准确率达到了99% 。这样看起来99%算是非常高的了,但是我们发现在训练集里面只有0.5%的患者患有癌症,那么这1%的错误率就变得那么准确了。我们再举个极端一点的例子,无论输入是什么,所有预测输出的数据都为0(也就是非癌症),那么我们这里的正确率是99.5%,但是这样的判断标准显然不能体现分类器的性能。
这是因为两者的数据相差非常大,在这里因为癌症的样本非常少,所以导致了预测的结果就会偏向一个极端,我们把这类的情况叫做偏斜类(Skewed Classes)问题。
所以我们需要另一种的评估方法,其中一种评估度量值叫做查准率(Precision)和召回率(Recall)。

在这里插入图片描述
我们建立一个2 x 2的表格,横坐标为真实值,纵坐标为预测值,表格单元1-4分别代表:预测准确的正样本(True positive)、预测错误的正样本(False positive)、预测错误的负样本(False negative)、预测正确的负样本(True negative)。
查准率(Precision)= 预测准确的正样本(True positive)/预测的正样本(predicted positive),而其中预测的正样本自然就包括了 预测准确的正样本+ 预测错误的正样本。
召回率(Recall)= 预测准确的正样本(True positive)/实际的正样本(actual positive),而其中实际的正样本自然就包括了 预测准确的正样本+ 预测错误的负样本。
假如像之前的y一直为0,虽然其准确率为99%,但是其召回率是0%。所以这对于评估算法的正确性是非常有帮助的。

个人理解:

Accuracy意义:对于Accuracy=0.9来说,有90%的概率患者得癌症
Precision意义:对于Precision=0.3来说,有30%的概率 对于患者癌症的预测是正确的。
Recall意义:对于Recall=0.2来说,有20%的概率 对于患者癌症的预测是完整且无遗漏的。
一般情况下,Precision升高,则Recall可能降低。故选择Precision,Recall都很高的指标为最好。

练习题:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择(A)
precision = 80/80+20=0.8
recall = 80/80+80 = 0.5

Trading off precision and recall权衡精确性和召回

在这里插入图片描述
假如我们想要选择尽可能准确告诉病人你可能得了癌症,那么我们尽量采用高Precision,低Recall。
假如我们想要尽可能避免多的漏诊(有癌症的病人却没有查出来),那么我们尽量采用高Recall,低Precision。
对于权衡Recall和Precision之间选择多大数值,我们可能画出Recall和Precision的曲线。(每种模型的曲线都不一样)

在这里插入图片描述

我们如何比较不同组的的precision和recall。

如果使用平均值评价,对于precision极小(0.02),recall极大(1.0)这种极端情况。其平均值比0.5,0.4的平均值更大。
故引入F1Score来评价precision和recall综合在一起的好坏。F1Score高,往往代表precision和recall综合起来都很高。

练习题:

在这里插入图片描述
在这里插入图片描述
选择(D)
对于训练出不同的参数值,我们得出了很多组不同的precision和recall。我们如何得出门限值来完成分类问题。
D.使用最大的F1scroe的值,在交叉训练集上。(注意:是在交叉训练集上)

Banko和Brill在2001年的时候,研究不同的算法对于逻辑分类的影响。但是最后却发现,四种算法之间的效果相差不大,结果也非常相似,但是真正提高四种算法性能的,是给出大量的训练数据。

在这里插入图片描述
所以引起了一个在机器学习中的普遍共识:取得成功的人不是拥有最好算法的人,而是拥有最多数据的人。
在这里插入图片描述
在这里插入图片描述

这是为什么呢?

首先我们因为有大量的特征量,去训练数据,这样就导致了我们的训练集误差非常小,也就是
在这里插入图片描述
非常小。然后我们提供了大量的训练数据,这样有利于防止过拟合,可以使得
在这里插入图片描述
这样,我们的假设函数既不会存在高偏差,也不会存在高方差,所以相对而言,大数据训练出来会更加准确。
注意了,这里不仅是由大量的训练数据,而且还要有更多的特征量。因为假如只有一些特征量,例如只有房子的大小,去预测房子的价格,那么就连世界最好的销售员也不能只凭房子大小就能告诉你房子的价格是多少。

练习题:

在这里插入图片描述
在这里插入图片描述
选择(A,C)
A.丰富的特征,产生很低的欠拟合。很大的数据集,产生很低的过拟合。
C.当数据集多的时候,需要复杂模型。此时的神经网络的输入特征要很丰富,也要有很多层的隐含层。

测试题:

在这里插入图片描述
在这里插入图片描述
答案 :0.85

注:accuracy = (85+10)/(85+890+15+10)=0.095…

precision = 85/(85+890) = 0.087…

recall = 85/(85+15) = 0.85

F1 = 2pr/(p+r) = 0.16…
在这里插入图片描述
选择(B,C)
B.我们的学习算法能够表示相当复杂的功能(例如,如果我们训练神经网络或其他具有大量参数的模型)。模型复杂,表示复杂的函数,此时的特征多项式可能比较多,能够很好的拟合训练集中的数据,使用大量的数据能够很好的训练模型。
C.当只给出特征x(或者更一般来说,如果我们有办法可以确信x包含足够的信息来准确预测y),在应用型领域的专家可以相当准确地预测y。 数据的有效性,使数据本身有一定规律可循

在这里插入图片描述
选择(A)
D选项.
在这里插入图片描述
如图所示,threshold门限值越高,其precision越高,recall越低。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择(A,B,D)
A.如果全部都预测为非垃圾邮件,那么accuracy会根据100之中1个分错,99个分对。故,为99%
B.在所有预测为1的中,共100个。其中真正为垃圾邮件的有1个。故precision为1/100=1%。在所有真正为垃圾邮件之中,共1个,预测为垃圾邮件的为1个。故recall为1/1=100%
D.在所有真正为垃圾邮件之中,共1个,预测为垃圾邮件的为0个。故recall为0/1=0%
在这里插入图片描述
在这里插入图片描述
选择(D,E)
B.错误。过拟合,增加数据集有用
C,门限值设置多少是不一定的
D.数据集大很难过拟合
E.正确。手动检查算法出错的示例的“错误分析”过程有助于建议采取哪些好步骤(例如,开发新功能)来提高算法的性能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
吴恩达机器学习系统设计选择题主要包含以下几个方面: 1. 训练集和开发/测试集:选择合适的训练集和开发/测试集对于构建有效的机器学习系统非常重要。我们需要确保训练集和开发/测试集能够代表真实的数据分布,并且在划分数据集时要考虑到数据的随机性和一致性。 2. 性能指标选择:根据具体的问题和需求,选择合适的性能指标来评估机器学习系统的表现。如分类问题可以选择准确率、精确率、召回率等指标,回归问题可以选择均方误差或相关系数等指标。 3. 偏差和方差的平衡:在机器学习系统中,我们通常会面临偏差和方差之间的权衡。通过增加模型的复杂度可以降低偏差,但容易引起方差过高;通过减小模型的复杂度可以减小方差,但容易导致偏差过高。需要根据具体情况选择适当的模型复杂度。 4. 错误分析:在构建机器学习系统时,我们需要进行错误分析来深入了解模型在不同数据集上的表现。通过错误分析,我们可以找出模型存在的问题,并采取相应的措施进行修正和优化。 5. 学习曲线:学习曲线可以帮助我们了解模型的训练过程。通过绘制训练集和开发/测试集的误差随着训练集大小变化的曲线,我们可以判断模型是否出现高偏差或高方差的情况,从而决定是否需要增加更多的训练数据或者调整模型复杂度。 吴恩达强调了以上几个方面的重要性,并提供了相应的选择题帮助我们更好地设计和调整机器学习系统,以获得更好的性能和效果。这些选择题的回答需要结合具体问题和数据情况进行分析和判断,从而做出最合理的决策。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值