读书笔记 | 《机器学习》- 模型评估与选择

-- 原创,未经授权,禁止转载 2017.10.31 --

传送门:

机器学习的基本概念(一):http://www.jianshu.com/p/10fc7e397a3e

机器学习的基本概念(二):http://www.jianshu.com/p/b3edf9c9f2c8

机器学习

机器通过学习,得到了模型。我们需要评判模型的泛化能力如何。

衡量模型泛化能力的评价标准,就是【性能度量】。这一章就是围绕性能度量,讲述如何评估模型。

一、结论:

模型的好坏(泛化能力)= 学习算法的能力 + 数据的充分性 + 学习任务本身的难易度

所以,模型的“好坏”是相对的,它不仅取决于算法和数据,还决定于任务需求。

二、评判方法

模型评估,是通过某种实验方法,评估测得某学习器的性能度量,以此做为评判方法。

除此之外,还需要辅助以假设检验,比较学习器之间的泛化能力。

性能评估

1. 基本术语:

【错误率】:分类错误的样本数 占 样本总数的比例。
【精度】: 1 - 错误率。
【误差】:学习器的实际预测输出与样本的真实输出之间的差异。
【训练误差】:学习器在训练集上的误差。
【泛化误差】:学习器在新样本上的误差。

【过拟合】:学习器把训练样本学得“太好”,把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样会导致泛化能力下降。

举例说明:

过拟合与欠拟合

【欠拟合】:与过拟合相对,指对训练样本的一般性质尚未学好。
ps:过拟合无法彻底避免,只能“缓解”。

【测试集】:通过实验测试学习器的泛化能力的样本集合。

休息一下

2. 实验评估方法:

这些方法是对测试样本的选择,为了得到更加准确的测试结果,测试集应该尽可能与训练集互斥。即,测试样本尽量不在训练集中出现,未在训练过程中使用过。

实验评估方法
1)留出法

步骤:
将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

需要注意的是:

  1. 训练/测试集的划分要尽可能保持数据分布的一致性。
  2. 采用若干次随机划分、重复进行试验评估后,取平均值作为留出法的评估结果。

解释:

  1. 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。

    例如,在分类任务中,要保持样本的类别比例相似。一般采用分层采样。

    【分层采样】:保留类别比例的采样方式。

  2. 因为存在多种方式对初始数据集D进行分割,不同的划分方式导致不同的训练/测试集,相应的,模型评估的结果也会有差别。

    所以,在使用留出法时,一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。

常用做法: 将2/3 ~ 4/5 的样本用于训练,剩余样本用于测试。

2)交叉验证法

步骤:

先将数据集D划分为k个大小相似的互斥子集(分层采样)得到,然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。

这样就能得到k组训练/测试集。从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

所以,交叉验证法也称为“k折交叉验证”,k通常取10,称为10折交叉验证。

10折交叉示意图:

10折交叉示意图

需要注意的是:

与留出法类似,采用若干次随机划分、重复进行试验评估后,取平均值作为交叉验证法的评估结果。

常见的有“10次10折交叉验证”。

特例:留一法

假设数据集D包含m个样本,若k=m,则得到了交叉验证法的特例:留一法(LOO)。

优点:它不受随机样本划分的影响,因为每个子集都会包含一个样本。所以留一法的评估结果最准确。

缺点:数据集较大时,训练m个模型计算开销太大。

3)自助法

以自助采样法为基础,从原始数据集D中,采样产生数据集D‘,其中数据集D中约有36.8%的样本未出现在采样数据集D’中,这部分数据可以用于测试。

自助法

优点:在数据集较小,难以有效划分训练/测试集时很有用。
缺点:自助法产生的数据集改变了初始数据集的分布,会引入估计偏差。

休息一下

三、 常用的性能度量

【性能度量】:衡量模型泛化能力的评价标准。反应了任务需求。

不同任务,使用的性能度量不同。

性能度量
1) 回归任务

最常用的性能度量是“均方误差”:

均方误差

2)聚类任务

聚类性能度量也称为聚类“有效性指标”,主要分两类:

a)一类,是将聚类结果与某个“参考模型”进行比较,称为【外部指标】。

常用的指标有:
JC系数,FM指数,Rand指数。

结果在[0,1]区间,值越大越好。

b)另一类,是直接考察聚类结果而不用任何模型,称为【内部指标】。

常用的指标有:
DB指数,Dunn指数。

DB指数越小越好,Dunn指数越大越好。

3)分类任务

a)错误率、精度

【错误率】:分类错误的样本数 占 样本总数的比例。
【精度】: 1 - 错误率。

错误率、精度
b)查准率与查全率

查准率也称为【准确率】。
查全率也称为【召回率】。

下图给出了二者的定义:

查准率、查全率

查准率与查全率是一对矛盾的度量。
一般,查准率高时,查全率会低;查全率高时,查准率偏低。

P-R曲线

以查全率为横轴,查准率为纵轴,作图。即查准率-查全率曲线,简称P-R曲线。

i) 计算步骤:

根据学习器的预测结果对样例进行排序,排在前面的是“最可能”的正例样本,排在后面的是“最不可能”的正例样本。

按此顺序,逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。

ii)检验查全率、查准率的性能指标:

  • 平衡点 BEP:查全率=查准率 时的取值。
  • F1度量:基于查准率与查全率的调和平均定义的。
F1度量

查准率与查全率的平衡选择,取决于你要解决的问题。

例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容是用户感兴趣的,此时查准率更重要。

如果是在逃犯信息检索系统中,希望尽可能少漏掉逃犯,此时查全率更重要。

F1度量的一般形式
c)ROC曲线

全称是“受试者工作特征”曲线。以【假正例率FPR】为横轴,【真正例率TPR】为纵轴。作图。

i)计算步骤:

与P-R曲线类似,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,算出FPR、TPR。

FPR、TPR

ii)为什么要用ROC曲线?

排序本身质量的好坏,体现了学习器在不同任务下泛化能力的好坏。ROC曲线则是从这个角度来衡量学习器泛化能力的。

ROC与AUC

AUC是ROC曲线下的面积,以此判断两个学习器的性能。

d)代价敏感错误率 与 代价曲线

i)为什么要用代价曲线:

现实生活中,不同类型的错误,造成的后果不同。

比如,医疗诊断中,将患者诊断为健康人,与,将健康人诊断为患者,带来的后果完全不同。误诊为健康人,后果是患者可能丧失了最佳治疗时机。

所以,为权衡不同类型的错误所造成的不同损失,为错误赋予【非均等代价】的概念。

在【非均等代价】下,代价曲线可以反映,学习器的期望总体代价。

我们寻求的,就是总体代价最小化。

ii)绘制步骤

绘制
代价曲线
放松一下

四、比较检验

1)概念解释

学习器之间泛化能力的比较,无法通过直接比较性能度量的值的大小。需要通过统计假设检验来比较。

原因:
  1. 我们希望比较的是学习器之间的泛化能力,然而通过实验评估方法,我们获得的是测试集上的性能。两者的对比结果可能未必相同。

  2. 测试集上的性能与测试集本身的选择有很大关系,而测试集大小不同,测试样例不同,测试结果也会不同。

  3. 机器学习算法本身有一定的随机性,即便用相同的参数设置在同一个测试集上运行多次,结果也会不同。

所以,不能直接比较性能度量值的大小,而是需要用假设检验进行比较。

2)常用的比较方法

对于单个学习器和多个学习器有不同的比较方法。

假设检验法

举例:

以错误率为性能度量,进行假设检验。
假设检验中的“假设”是对学习器泛化错误率分布的某种猜想。

现实任务中,我们并不知道学习器的泛化错误率,只知道测试错误率。二者接近的可能性很大,以此可以推算出泛化错误率的分布。

  • 对于单个学习器,常用的方法有二项检验,t检验。
二项检验

有多个测试错误率时,可采用t检验方法比较。

t分布示意图
常用临界值
  • 对于多个学习器,常用的方法有,交叉验证t检验,McNemar检验,Friedman检验与Nemenyi后续检验。

    • 交叉验证t检验 和 McNemar检验,是在一个数据集上比较两个算法的性能。

    • Friedman检验 与 Nemenyi后续检验,是在一组数据集上比较多个算法的性能。

对于两个学习器,若使用k折交叉验证法得到测试错误率,则可用k折交叉验证“成对t检验”来进行比较检验。

进行有效的假设检验,一个重要前提是,测试错误率均为泛化错误率的独立采样。所以一般采用“5 x 2交叉验证”法,尽量保证测试错误率的独立性。

Friedman检验是基于多个算法进行排序的检验。

F检验常用临界值

经过F检验,说明算法的性能显著不同,需要进行“后续检验”进一步区别各算法。

Nemenyi检验常用临界值
休息一下

五、偏差与方差

“偏差-方差分解”是解释学习算法泛化能力的重要工具。它试图对学习算法的期望泛化错误率进行拆解。

以回归任务为例,泛化误差可分解为,偏差+方差+噪声之和。

【偏差】度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。

【方差】度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。

【噪声】则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

  • 偏差-方差分解说明,泛化能力是由学习算法的能力、数据的充分性以及 学习任务本身的难易度 共同决定的。

给定学习任务,为了取得好的泛化能力,则需使偏差较小,即能够充分拟合数据;并且方差较小,即使得数据扰动产生的影响较小。

一般来说,偏差与方差是有冲突的,称为偏差-方差窘境。

偏差-方差窘境

至此,内容就讲完了。上一张全家福~~

全家福

最后,想成为一名AI产品经理,求推荐~

-- 原创,未经授权,禁止转载 2017.10.31 --

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,907评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,546评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,705评论 0 238
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,624评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,940评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,371评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,672评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,396评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,069评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,350评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,876评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,243评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,847评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,004评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,755评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,378评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,266评论 2 259

推荐阅读更多精彩内容