前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MIT公开课-机器学习导论(附视频中字)

MIT公开课-机器学习导论(附视频中字)

作者头像
CDA数据分析师
发布2018-02-08 10:52:14
1.2K0
发布2018-02-08 10:52:14
举报
文章被收录于专栏:CDA数据分析师

MIT6.0002课程《计算机科学与用Python编程》(Computer Science and Programming in Python)针对没有或有少量编程经验的学生,目的是让学生了解计算在解决问题中的作用,并帮助学生用自己的能力编写小的程序并实现目标。在当中这节机器学习导论课中,Grimson教授介绍了机器学习,并展示了使用特征向量进行监督学习的例子。

主讲人:

Eric Grimson

Eric Grimson是麻省理工学院计算机科学与工程学教授2011年至2014年间,担任麻省理工学院的校长,此前曾担任麻省理工学院电子工程和计算机科学系主任。1975年,在加拿大里贾纳大学获得了理学学士学位,并在1980年获得了麻省理工学院的数学博士学位。Grimson教授的研究团队开创了活动和行为识别、对象与人识别、图像数据库索引、图像引导手术、网站建模以及计算机视觉等许多领域的先进体系。Grimson教授是美国人工智能协会(AAAI)的成、会员,以及IEEE和ACM的会员,并获得了麻省理工学院工程学院颁发的工程学院卓越教学“Bose奖”。

本节课我们将谈到机器学习。当我们谈到机器学习时,当中会涉及很多要素。首先,毋庸置疑这是一个很大的话题。自然语言处理、计算生物学、计算机视觉、机器人技术等学科如今在很大程度上依赖于机器学习。

在本课我们会讲导论的部分,讲解机器学习的基本概念。拥有样本,以及如何表现出代表样本的特征。如何测量它们之间的距离,并使用距离的概念来聚集类似的内容,从而作为进行机器学习的方法。

我们将看到两种不同标准方法的结果。一个称为分类方法,在例子中我们可以看到K最近邻。第二类称为聚类方法

当具有标注数据时,分类方法的效果很好。样本中的标注,我将用来定义分类。当没有标注数据时,聚类方法的效果很好。一会儿我们将探究当中深意,但我打算给你们一些初步概念。

我们很可能不会向你们展示目前先进的机器学习方法。比如你在新闻中看到的卷积神经网络,或深度学习。但当谈到学习算法时,通过看到我们所做的,你会对那些内容背后的原理有一些了解。

机器学习无处不在

在此之前,我想指出机器学习是多么普遍。1975年我开始进行AI方面的研究,当时机器学习很简单,40年来这发生了惊人的改变。

你不妨想想,AlphaGo来自谷歌的基于机器学习的系统,用来击败世界一流水平的围棋选手。国际象棋已经被计算机战胜了一段时间了,如今世界上最强的围棋选手是计算机。

想必你们很多人都用Netflix推荐系统。Netflix Amazon使用机器学习算法,对你喜欢看的内容提出建议。

其实你可能已经在谷歌上看到了,谷歌上弹出的广告就来自机器学习算法。根据你的喜好,这有点吓人。

药物研发,字符识别。邮局对手写字符进行字符识别,通过使用计算机视觉背后的机器学习算法。

你可能没听过这个公司,这实际上是MIT衍生的公司名为Two Sigma 总部在纽约。他们大量使用AI 机器学习技术,两年前他们的资金获得56%的回报。去年他们做的不是很理想,但使用机器学习技术得到了非常惊人的成果。

另一个出色的MIT公司进行计算机视觉系统。当中大量运用机器学习,这运用于辅助驾驶,之后将用于完全的自动驾驶。当你太靠近前面车辆时,它会按下刹车。

人脸识别,Facebook用这个。许多其他系统用此来进行面部检测和面部识别。

IBM Watson,癌症诊断。这些都是机器学习无处不在的例子,事实就是如此,我仅仅列出了9个例子。

什么是机器学习?

上周我们讲到了线性回归。这开始有点接近学习算法了。因为我们所做的是给出一组数据点,大量的位移数据点。然后我们向你展示,计算机如何用曲线拟合数据点。某种意义上相当于,为数据学习模型。之后可以用来预测其他情况下的行为。这更接近我们谈到机器学习算法时所希望看到的。

我们希望有能够从经验中学习的程序,之后可以用来推断新的事实。这个问题在AI中存在了很长一段时间。我很喜欢这段话,来自Arthur Samuel,在1959年他给出的机器学习的定义是“让计算机有学习的能力 而不是直接的进行编程”。

我想很多人会说,他写的第一个程序就是用于学习经验的。他教会计算机下国际跳棋,这展现了该领域是如何进步的。我们从国际跳棋开始,然后是国际象棋,如今是围棋。计算机学会下国际跳棋,击败了国家级的选手。更重要的是,它学会通过观察比赛中的行为改善方法,然后进行推断和改变。

Samuel还做出了许多其他成果,在接下来的课程中你们会看到。他发明了Alpha-beta剪枝算法,用于进行搜索的有效技术。但是问题在于,我们如何能够使计算机学习,而无需进行预先地编程。

方法之一是,思考我们进行标准编程与我们看待机器学习算法间的区别。我知道你们不相信存在标准编程。但如果你想到传统编程,那是什么流程?

我写一个程序,输入到计算机。从而它获取数据,得出适当的输出。我编写代码使用牛顿迭代法得到平方根。然后得到程序,给出任何数字得出平方根。

机器学习方法的理念是,我给计算机提供输出,给出我希望程序要做的例子,标注数据,给出不同类别事物的特征。我希望计算机给出输出和数据的特征,然后机器学习算法能够为我生成程序。该程序能够用于推断新的信息,然后创建出不错的循环。当中让机器学习算法学习程序,接着可以用于解决其他问题。这如果能实现的话是很棒的。

正如我建议的,曲线拟合算法是一个简单的版本。它学习数据的模型,之后我可以用于标记任何数据。或者预测改变质量时的弹簧位移。这就是我们要探究的。

学习的方式

我们需要思考“该怎样学习? 计算机该怎样学习?”

作为人类来说,有一些可能性。这是一种很无聊的、很传统的方法。记住例子,尽可能多的记住例子。然后希望在期末考试中提到那些事实中的例子,而不是其他你没记住的例子。

这是我们在第一节课提到的陈述性知识,事实的陈述。尽可能多的记忆,把维基百科收入囊中。一个更好的方式是能够推断,根据之前的信息推断新的信息。如果想到这点,这更接近所谓的程序性知识。推断新事物的方法。

在第一情况下,我们进行构建。编写计算平方根的程序。而在学习算法中,我们希望有更广义的概念。我们更希望拓展我们的能力。编写能够从数据隐含模式中推断出有用信息的程序,因而不是一些明显的内置信息。比如对权重和位移的比较,而实际上是数据中的隐含模式。从而让算法分辨这些模式是什么,并用它们生成程序。用来推断关于物体以及弹簧位移的新数据,以及任何你想做的。

让我们将看到的基本范式。我们将为系统提供一些训练数据和观测值。正如我们上次针对弹簧位移问题所做的。接着我们要试图弄清楚,如何编写代码,如何编写程序和系统,从而对生成数据的流程做一些推断,就此我们相对未知的事物进行预测。

例子1:橄榄球员分类

我举一个我最喜欢的例子,我是新英格兰爱国者球队的死忠粉。我将用橄榄球队员举例。标签就是他们打的位置。而数据我们将用到身高和体重。但是我们想做的是,能否对隐含模式进行描述,即如何通过身高和体重预测出球员所打的位置。从而得出预测新球员位置的算法。想想怎样通过推断找到模型,以及怎样使用模型进行预测。

在今天的多个例子中我们将看到,学习可以通过两种广泛的途径来实现。第一种被称为有监督学习,在有监督学习中,对于每个新的例子作为训练数据的一部分,都有一个标签。我知道它们代表了什么,我将要做的是基于这些例子,如果找到预测关于未见过的输入的标签。这是有监督的,因为我知道标签是什么。

第二种被称为无监督学习。在无监督学习中,我将给出一些例子。但我不知道与它们相关的标签。我要尝试找出将这些例子归类到不同模型的自然方法。有时我会知道一共有多少模型,有时我仅知道这是我所找到的最好分类。

这里有一些爱国者队现任运动员的数据点。有两类位置,接球手和前锋。每个队员都通过姓名,英寸为单位的身高和镑为单位的体重来标注。

每类位置五个队员,如果将其绘制成二维图。我想要知道的是,有没有特征能够区分这两个类别。在未标注的一类,我有的只是一些例子,所以我要做的是确定什么让两个队员相似。

目标是能否将这个分布划分为,两个或者更多的自然分组。类似于距离测量,如何根据例子的值和特征确定当中的差异。

在无监督情况下简单的实现方式是,如果我知道至少存在K个分组,在这个案例中有两个不同的分组。那么如何更好地进行聚类,因此一组中的例子都彼此接近,另一组的例子也十分接近,而这两组之间数值差的很远。

有很多实现的方法,我将展示一种非常标准的方式。基本原理如下,如果我所知道的是两类分组,那么我将选择两个例子作为范例。我随机选择了两个,但实际上随机选择并不是好。

在训练数据中,哪一个与它最相似的呢?我将要做的是创建簇,簇的特征是当中所有例子的平均差距小。看是否能使两个群集例子间的平均差距尽可能小。

这个算法通过选出两个例子。通过把例子放入最近的分组进行聚类,一旦得到这些簇,我将找到这组当中的中间元素。将这些作为范例,接着不断重复这个过程,直到结果不再改变。这是基于距离的聚类。

针对橄榄球员,如果只根据体重。这个是自然分割线 ,这有一定道理。这三个点很明显的聚集在一起,只是在这个坐标轴上,这三个点在分割线下,另外七个点在不同的位置。这有一条自然分割线。

如果根据身高进行分类,结果不是很清晰。这是算法给出的结果。这里的最优分割线表明,在这个坐标轴上,这四个之间更接近,这六个更接近,但是不是很清晰。这是我们将要考虑的,如何能够找到最好的簇。

如果同时使用身高和体重,结果如下。结果不错。那三个聚集在一起,只针对距离的话它们很接近。另外七个距离很近。在这有一条清晰的自然分割线。实际上为我们得到了分类器,这条线是两个簇中心的等距离分割线,意味着分割线上任意点到两个簇中心的距离均相等。

因此对于任何新的例子,如果位于这条分割线上为上面的标签,位于分割线下为下面的标签。稍后我们将研究如何测量距离。

但是这个思路很简单,我要得到组内相距很近,而组间相距较远的分组,现在假设我实际知道这些球员的标签。这些是接球手,那些是前锋。对于橄榄球迷的来说,你可以分辨出这两个是近端锋,他们块头更大。如果你真是爱国者队的死忠粉,你会知道这个是Bennett 那个是Gronk。

如果我事先知道它们的标签,我将如何进行分组。这很容易,在这种情况下基本思路是,如果在那个特征空间中有被标记的分组。

我想做的是,找到一个能自然地分割空间的次表面。次表面是一个高大上的词。在二维图中,我不想知道哪条是最佳分割线。如果我能找到一条线,能够将两个标签中的所有例子区分。如果例子被很好的区分开来,这将很容易而且很棒。

但在一些情况下更为复杂,因为有些例子可能非常接近于其他例子。这将导致我们之前碰到的问题,我想避免过拟合。我不想生成一个十分复杂的表面来区分事物。如果不能完美区分的话,我们得忍受一些没有被准确标注的例子。

正如你们所知,在有标注数据的情况下,这里有一条最佳拟合线。体重超过280镑(约127千克)的人将会成为优秀的前锋,体重低于280镑的人更可能成为一个接球手。因此我得到了两种做标注的不同的方式。

假设我现在加入了一些新数据,我想为新的例子进行标注。他们实际上是不同位置的球员,这些是跑卫。但假设我只知道接球手和前锋,当我得到这两个新的数据,我想要搞清楚他们更有可能成为接球手还是前锋。

这就是这两位球员的数据,所以当我绘出这两个点,你将发现这个情况,这些(蓝色的)是前锋,红色的是接球手,这两个黑色的点是两个跑卫。注意这里很难将这两个点分开,它们太接近了,这是现在我们需要权衡的。

要么我需要重新考虑分类情况,要么或许这里不止存在两种类别,或许这里有三种类别,我想把它们区分开来。

另一方面,如果我使用标注数据,这就是我的分割线。这很简单。这两个新的样本都处于分割线以下,他们都是很清晰准确的样本。我更倾向去将其归类到接球手,而不是前锋。这是一个关于橄榄球的例子,如果你对橄榄球不感兴趣。你可以选择其他的例子。但是你需要了解为什么,我使用标注数据和未标注数据得出不一样的分类。

我们也将学习基于标注数据的模型,然后思考如何通过一条线、平面或者一些直线,实现对一组样本和另一组样本进分类。鉴于需要避免过拟合,我们并不希望建立过于复杂的系统。因此我们要权衡假正(FP)和假负(FN),但是最后得到的分类器能够仅通过分割线,实现对于新数据的标注。

这里我使用身高和体重来表示橄榄球运动员,但我也可以选择平均速度和臂长等数据,那么该如何才能知道哪些是与之相关的合适特征。我应该如何计量这些特征数据之间的差异,怎样确定哪些接近哪些并不接近,可能根据体重和身高有所不同,我需要做出抉择。

特征表示

现在我们讨论一下特征,我已经得到了一组样本,被标注或者没被标注。当我要衡量两个样本之间的区别时,我需要明确这些样本为何是有用的。但是问题是如果能将这个问题简化,那么一切就简单了。但特征并不总能表现得如你所愿。

引用20世纪最伟大的一位统计学家的一句话,我认为这句话很贴切。“关于特征工作,作为程序员你需要决定我想要测量向量中的哪些特征,以及如何相对地进行测量”。

我本可以让我们这个学期的工作很轻松,如果我们在课程的开始对你们说,我们已经教过很多次这个课程了,我们从成千上万为学生那里获取了大量的数据。让我们设计一个学习算法,能够通过这些数据来预测你们本学科的期末成绩。这样你们不需要来上课,不需要经历难题。直接预测你们的期末成绩,是不是很棒?这样让我们的工作变得更轻松。

想想特征,我们要测量哪些特征?GPA应该是一个不错的选择,你在其它课表现不错的话,那么你也很有可能在本课得到好的成绩。

我将谨慎地使用编程经验这个特征数据,它确实是一个预测数据,但并不是那么完美。就算你们中有些人之前没有编程经验,但仍可能在这门课程之中取得好成绩。

另一方面,我不相信星座。因此我并不认为你出生的月份,所处的星座跟你的编程水平有任何的联系。我也否定眼球颜色与编程能力之间有联系,你懂的,有些特征重要,有些则不重要。

现在我可以加入所有的特征,并希望机器学习算法理清哪些是需要保留的,哪些不需要保留。但是我需要提醒你们过拟合的问题,如果这么做的话存在风险。出现出生月份,眼球颜色以及GPA成绩的相关性,这会导致我们不希望的结论。

我们需要思考怎样选择特征,绝大多数情况下我们尝试将所谓的信噪比进行最大化,将带有绝大部分的信息的特征最大化,去掉那些信息量不足的特征。

例子2:爬行类动物分类

我想要给你们看一个例子,我打算对爬行类动物进行标记。我想试图标记一个动物是否属于爬行类动物。

我知道眼镜蛇能产卵、有鳞片、有毒是冷血动物,它没有腿,它是爬行类动物。

但是如果给你们第二个例子,刚好也是能产卵、有鳞片、有毒、冷血、无腿。这就是我的模型,完美而合理。无论是我还是机器学习算法这样设计,如果这些都标注为爬行类动物。

现在给出一条蟒蛇作为样本。它是爬行类动物,但是它不符合这个模型。尤其是它不能产卵,并且无毒。因此我或者算法需要重新定义模型。

我想要提醒你们的是,注意这些特征。一开始我们使用的是五个特征。这个不符合。所以或许我们应该减少特征,只关注是否有鳞片,为冷血动物是否有腿。这包含所有三个样本的特征,从分类的角度,三个都符合这些特征。

现在给出另一个例子,鸡。我不认为它是爬行类动物,但是它依然符合该模型。可能你没有意识到,它有鳞片。它不是冷血动物,它有腿。所以它是一个反例。它强化了该模型。听起来不错。

现在给出鳄鱼,它是爬行动物。它并不能完全符合该模型。因为它有鳞片,是冷血动物,有腿。

我需要想想如何进行改善,我们可以把模型弄得更复杂。若符合有鳞片的,冷血动物有零到四条腿,则是爬行动物。

看到箭毒蛙。它不是爬行动物,是两栖动物。没问题,它依然符合模型,所以它是该类别之外的样本。没有鳞片,非冷血动物,刚好有四条腿。它不是爬行类动物。

然后看到蟒蛇(Python),这里必须要有蟒蛇。接着看到鲑鱼,现在麻烦来了 ,因为看到是否有鳞片,是否为冷血动物,是否有腿,我不能区分它们。无法根据这些特征正确的判断出蟒蛇是爬行动物。而鲑鱼不是爬行动物,所以没有简单加入该规则的方法。

对此最好的方法是回到只有两个特征的情况,鳞片和冷血动物。也就是说如果某种动物有鳞片,且为冷血动物,那我就判断它为爬行动物。如果同时不符合这两点,那就不是爬行动物。这并不完美,会错误的标记鲑鱼。

但在此我做出了设计的选择,这是很重要的。设计选择是,没有任何漏报(FN),也就是说不会出现我将非爬行动物,判断成爬行动物的情况。漏报(FN)指模型将不是爬行动物的,判断为爬行动物。可能存在误报(FP),会出现少数被误标为爬行动物的例子。特别的是,鲑鱼就是这样的例子。关于误报和漏报的权衡是我们需要注意的,因为多数情况下,没有办法将数据完美地分开。

一旦决定了使用哪些特性。接着我需要决定距离。怎样比较两个特征向量?之所以成为向量,因为存在多个维度。决定怎样比较它们,因为我想利用距离判断如何分类,以及如何找到分割线,需要决定的内容之一是选哪些特征。同时要要决定距离,最后还要决定如何权衡特征向量中不同维度的重要性。在做选择中有些可能更为有价值。

回到动物的例子。一开始特征向量实际存在五个维度。产卵、冷血、有鳞片、腿的数量,还有一个我忘了。

我能想到的方法之一是每个动物有四个二值特征和一个整数特征。分离非爬行动物和爬行动物的方法是测量每对例子之间的距离。利用距离来判断哪些是接近的,哪些不是。

正如之前所说,需要对事物进行聚类,或者需要找到分割它们的分类面。这里有一个简单的方法,每个例子中,正确标为1错误标为0。前四个为0或1。最后是腿的数量。那么现在该如何测量动物间的距离?或者关于这些特征向量的其他内容。

在这里我们要用到闵可夫斯基度量(Minkowski Metric),或者叫闵可夫斯基区别。给出两个向量和系数P,取变量中每个元素间差值的绝对值,取P次方,求和。然后取和值的P次根。

让我们看到两个明显的例子,P为1测量了每个成分间的绝对距离。加起来这就是距离。称为曼哈顿度量(Manhattan Metric)

如果P为2这就是欧几里得距离(Euclidean Distance)。对元素的差值求平方和,然后开平方根。因为距离的某些属性,这就是欧几里得距离。

如果我想测试两者的距离,问题是这个圈更接近星星还是十字形。根据使用的度量答案也不一样。欧几里得距离为,2的平方根乘以2,约为2.8。另一个为3。因此根据的标准距离,我们可以说这两个更近。

曼哈顿距离,之所以称为曼哈顿距离,因为你只能沿着街道走。在曼哈顿距离上会说,这里为4个单位距离,而这里是3个单位距离。在曼哈顿距离中,这一对比起另一对更近。现在你已经习惯了欧几里德,当我们打算比较不同物体的距离时,这是很重要的。通常我们会使用欧几里德,之后会看到曼哈顿的价值。

让我们回到之前的三个例子,响尾蛇、蟒蛇和箭毒蛙。我想问问它们之间的距离是多少。

现在加入鳄鱼,我想进行同样的比较。没有得到同样好的结果。因此像以前那样,两类蛇很接近。但在这种情况下箭毒蛙和鳄鱼也很接近。但它们彼此之间并不像。

在这里要提醒一下,我希望鳄鱼和两类蛇更接近,离箭毒蛙更远。因为这里我们试图分类爬行动物和非爬行动物。

此时特征工程(Feature Engineering)就很重要了。因为事实上 鳄鱼在三个特点上与青蛙不同。但只有两个特点与蟒蛇不同。特征之一是腿的数量,在二进制中差异在0与1之间,而这里是0到4的差异。这使得距离要远的多,腿的维度太大了。

根据这个数值它们之间形成了自然的分割。特征的选择很重要,选择过多的特征会导致一些过拟合。特别是决定特征的权重时影响很大。

当你作为设计师、程序员时如何选择将带来很大的影响。因此特征工程真的很重要。

我可以给你一个非常简单的方法来做聚类。比方说给你100个样本组建100个簇。每个样本自身都是一个簇。距离方面非常好,离自身足够近。但标签方面非常不理想。

所以我们需要思考如何决定分多少簇,分类的困难度如何。怎样避免我们不想遇到的过拟合问题。

让我们以另一个例子结束该部分。假设给出标注的样本。目的是一样的,每个样本具有相关特征并且是多维的。我们也知道与之相关的标签。我想知道何为制定规则的最佳方式。从而接收新样本并将其分配到合适的组中,

有几种解决方法。你可以说我想找到分隔这些样本最简单的平面。在举出的橄榄球例子中,最佳分隔线是哪条。这个很简单。

我可能需要找个更复杂的平面,我们马上会看到相应例子。可能会用一系列线段来做分隔,因为并不只是一条线进行分割。和之前一样我们要注意,若弄得太复杂,我们可能会得到一个非常好的分隔,但会对数据过度拟合。

你们下回会看到,我在这里强调一下有第三种方法。可以得出几乎相同的结果,称作

K近邻法。

意思是我有一组标注数据,我要做的是对于每个新样本,找到K。比方说五个最近的标注样本,并且决定在这些标签中,如果五个中有三个符合,五个中有四个符合,或是五个中五个全符合的话,它们就是一组的。如果少于那个数就作为待分组。这是学习它们的好方法。

例子3:投票数据分类

最后再让展示一个例子。给你们一些投票数据。这其实是模拟数据。这是一组美国选民以及他们的投票偏向。他们打算选共和党,他们打算选民主党。两种类别为年龄和其居住地到波士顿的距离。我不知道它们是否相关,它们只是我们用来给选民分类的要素。

我想知道如何拟合一条曲线用来区分这两类。我将用一半的数据来测试,另一半用来训练。

如果这是我的训练数据,我想知道最佳分隔线是哪条。这条实线有个特性是所有的民主党都在线的一侧。另一侧的都是共和党,但有些共和党在线的另一侧。我没法找到像在橄榄球队员例子中那样,能够完全分隔的一条线,但这条线分隔也得相当好了。

这里还有另一个候选的线。虚线的特性是,在线的右侧几乎包括所有的共和党。这样非常合适。以及一个民主党。不过这样的分隔已经不错了。然后在左侧是两类的混合。但大部分是民主党都是在线的左侧,实际上波士顿的距离与之完全不相干。

问题是我如何进行评估,我怎样决定哪条线比较好。我打算直接给你们展示一些例子。第一个是混淆矩阵。是指对于这些分类器的其中一个。比如这条实线,基于实线预测出更有可能是民主党或是共和党。然后这边是实际标签,对于虚线也是同理。这条对角线很重要,因为这些是正确标注的结果。

它在实线和虚线中包含所有正确的民主党标签。一半的共和党标签是正确的,但有一些实际上是共和党但它标注为民主党。然后得出自然测度称作准确度。

我们提到过,这些是真正(TP) 也就是说,我标注它为实例结果也是如此。这些是真负(TN),我标注它不为实例,结果确实不是这样。这些是误报(FP),我标记它为实例,而并不是。这些是漏报(FN),我标记它不为实例而却是的。

一个简单的测量方法是,看到所有标签中的正确标签。真正和真负,那些我算对的。这种情况下两个模型的值均为0.7。那么哪个比较好?我应该进行验证,我想先看看其他数据再来验证。

我们也可以找找具有较小训练误差的内容。仅得到70%的正确率还不够好。

这里有个复杂些的模型,这时你该开始担心过拟合了。我做的是用一系列线用来作分隔,这条线上面的均为共和党,这条线下面的均为民主党。所以除去这个那个,仍然能捕捉到很多相同的内容。

这种情况下,我得到12个真正,13个真负,只有5个误报。这样挺好的。可以看到那5个是下面的这5个红点,准确度为0.833。

现在如果我把它运用在测试数据上,我得到一个还不错的结果。准确率大约是0.6。

我可以运用这个想法来尝试推广,看是否能找到更好的模型。

还有其他的测量方法,我将把这个用作最后的例子。我们用到的另一个测量方法称为PPV阳性预测值(positive predictive value)。意思是在所有标注肯定的内容中,有多少为真正(TP)。在实线和虚线模型中,我得到的值约是0.57。训练数据中复杂模型效果不错,测试数据的值更好。

灵敏度和特异度

最后另外两个例子称为灵敏度(sensitivity)特异度(specificity)。灵敏度基本上能告诉你正确的百分比;特异度则为否定的百分比。

我给你们看这个是因为这是需要权衡的地方。我可以理解为灵敏度就是,在所有正确和错误标注的集合中,有多少是标注正确的,有多少标注正确的是我想要的。我可以让灵敏度为1,将所有内容标注为我想要的。但是特异度将为0,因为我将有很多标注错误的。我也可以使特异度为1,否定一切,认为没有一个是实例。真负(TN)为1,情况很好,但是灵敏度变为0。这需要权衡。

当考虑机器学习算法时,使用选择的分类,我们将面临权衡。我们可以损失灵敏度来提高特异度,反之亦然。你将看到一个不错的技术,称为接收者操作曲线。可以让你了解如何处理这种问题。

非常感谢,我们下次见。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档