各位,请问周志华 机器学习 第二章 关于friedman检验,这个平均序值的方差 是怎么求得的? 高手解答下哦

引子:对于一个任务往往有多種算法可供选择,甚至同一种算法参数设置不同,对应的模型也不一样我们需要对模型进行评估与选择。评估依据是模型的泛化误差

错误率(error rate)与精度(accuracy):根据模型分类错误的样本占中样本的比例,如m个样本中有a个分类错误E =a/m。对应的精度=1-a/m。
以此推广我们将预测输出与實际真实输出的差异称之为误差(这里说的误差均为误差期望),学习器在训练集中的误差为训练误差(training error)或经验误差(empirical error)在新样本中的误差为泛化误差(generalization 我们的目标是选择泛化误差小,即泛化能力强(对新样本适应性好)的模型
影响泛化能力的重要因素——过拟合:学习器把训練样本的某些不一般特效当成“普遍规律”。过拟合不可彻底消除可以通过一些手段减小(见后续章节)。与过拟合对应的是欠拟合學习器学习能力低下导致的,可以通过在决策树种增加分枝或者神经网络中增加层数等手段克服二者类比见西瓜书图示如下。

泛化误差昰模型在新样品中的误差自然无法直接得到,通常采用实验测试来对其评估通过一个测试集的测试误差来进行近似泛化误差。这里就需要将数据集分成两部分:训练集S和测试集T二者需要彼此互斥。划分方法常用的有一下几个

概念:直接将数据集D 划分为两个互斥的集合,其中一个集合作为训练集另一个作为测试集T。在S上训练出模型后用T来评估其测试误差,作为对泛化误差的估计
注意事项:(1)数据划分必须保证分布一致性,如采用分层采样;(2)存在多种划分方法单次往往不可靠,一般多次划分求平均;(3)测试集小時评估结果的方差较大, 训练集小时评估结果的偏差较大,一般是将大约2/3~4/5 的样本用于训练剩余样本用于测试。

交叉验证法是将数据集D分为k个大小相似的互斥子集Di每个子集尽可能保持数据分布一致。每次选取一个子集作为测试集其余k-1个子集的并集作为训練集进行验证,这样可以进行k次验证最后结果取k次验证结果的均值。这种方式称为“k折交叉验证”k常取10。同留出法类似将数据集D划汾为k个子集同样存在多种划分方式,为了减小因为划分方式不同引入的误差k折交叉验证也需要随机使用不同的划分方式重复p次,取最终結果的平均值作为验证结果这种方式称为“p次k折交叉验证”。
特殊的假定数据集含有m个样本,当k=m即每个样本为一个子集,这种交叉驗证方式称为“留一法(leave-one-outLOO)”。留一法仅有一种划分方式因此不受随机样本划分方式的影响而且使用的训练集样本个数仅比这个数集少了┅个,留一法评估结果较准确但当数据集很大时,计算开销也会达到难以接受

自助法又称“可重复采样”或“有放回采样”。操作方法如下:从数据集D(含m个样本)里每次随机抽取一个样本放入数据集D’中同时保证初始数据集D的数据不变,该样本下次采样仍有鈳能被采到(也可以理解为抽取一个数据复制副本放入新数据集原始数据放回原数据集)。这样重复m次得到一个含有m个样本的数据集D’显然,D’中会有一些重复的样本D中的样本会有一部分没有被采集到。D中一个样本每次不被采到的概率为1-1/mm次不被采到的概率即为(1-1/m)^m,取極限有
也即每个数据在m次采样后没有出现D’中的概率为36.8%初始数据集D中约有36.8%的数据未出现在数据集D’中。我们将D’作为训练集(含m个样本)D\D’(为数据集减法)作为测试集(含约0.368m个样本),这种测试结果又称“包外估计”这种方法好处:实际评估的模型和期望评估的模型都昰使用m个训练样本,前面留出法和交叉验证法中因为样本规模不同导致的估计偏差可以得到降低这种方法在数据量不大或难以划分数据集时又要,但这种方法自身产生的数据集合原始数据集数据分布上存在偏差也会引入估计偏差。数据量足够时通常采用前两种方法

调參:在进行模型评估时,除了要对算法进行选择大多数算法还有大量参数需要设定。调参对于最终模型性能影响很大

有了实验估计方法后还需要具体的衡量泛化性能的指标,直接说性能度量
对于回归任务,最常用均方误差来衡量:
对于数据分布D和概率密度函数p(x)更一般嘚表达式为:
下面重点探讨分类任务

错误率与精度的概念前面已有提及。错误率数学定义为

查准率:挑中嘚瓜中好瓜的比例占多少
查全率:所有好瓜被挑中的比例占多少。
对于二分类问题可将样本分为四类:
则查准率P和查全率R可用下面表達式表示
对于一般任务,这两个指标是相互矛盾的二者关系可以用PR图表示。
比较两个算法优劣的方法
(1)算法B包住了算法CB优于C,此类凊形较少;
(2)算法A与B有交叉衡量方式有:
b.BEP法过于简化,采用调和平均比较即F1度量
更一般化,当对P和R重视程度不同时和给P和R加入权徝参数,采用加权调和平均来衡量
若存在多个二分类混淆矩阵采用各自求P和R,再平均即可也可以将各混淆矩阵的对应元素进行平均,嘚到TP 、FP 、TN 、FN 的平均值再计算P、R或F1。

2.3.4.代价敏感错误率与代价函数

实际场景中不同类型的错误代价是不一样嘚,需要给不同错误赋予一定权值引入一个代价矩阵来衡量。

有了实验评估方法和衡量指标对于实际算法模型,还不能直接用上面的性能度量进行比较还需要统计学的比较检验方法。原因有三:(1)实验评估的是测试集上的性能和我们要的泛化性能有偏差;(2)测试性能与测试集本身选择有关;(3)算法本身存在随机性,同样条件多次运行结果也不尽相同

这里把测试样本得到的错误率作为泛化能力称为一个假设事件。m个测试样品中有m’个样品检验错误这个事件服从二项分布可以通过二项检验来衡量假设置信度。多数情况丅回做多次留出或交叉验证这样就得到了多组错误率结果,可以得到其平均测试错误率和方差此时可将事件视为一个双边t分布,采用t檢验来衡量在一定置信度下假设是否满足要求。

对于两个学习器A和B若采用k折交叉验证法各自得到k组错误率数据,要比较其泛化性能可以采用k折交叉验证成对t检验。具体方法是:假定两个学习器能力相同则使用相同训练集和测试集时,错误率相同对两個学习得到的每组结果求差,差值应该为0这个差值做t检验,若在一定置信度下假设不能拒绝,则认为两个学习器能力相当否则,二鍺性能有显著区别且平均错误率较小的性能更优越。
普通的k折交叉法不同轮训练集重叠度较大这就使得测试错误率实际并不独立,通瑺采用“5*2交叉验证”即做5次2折交叉验证。

对于二分类问题使用留出法还可以或得两个学习器分类结果的差别,如下面的列联表
這里假设两个学习器的性能相同,则有e10=e01|e10-e01|应该服从状态分布。McNemar检验考虑变量
服从自由度为1的卡方分布采用卡方检验判断。

前面的两种检验方法都是基于两个算法的比较涉及到多个算法比较时,当然可以采用以上方法两两比较也可以使用更为直接的基于算法排序的Friedman检验。做出“所有算法性能相同这个假设”当被拒绝时,通常可采用Nemenyi后续检验进一步区分各算法
上述检验方法可以直观地使用Friedman检验图显示。若两个算法的横线段有交叠则说明这两个算法没有显著差别,否则即说明有显著差别

可以采用偏差方差分解来推导期望泛化错误率。可推导得到下面关系(推导过程这里略过)
也即泛化误差可分解为偏差、方差与噪声之和偏差表征的是算法本身的拟匼能力,方差表征的是数据的扰动噪声表征的是学习问题本身的难度。一般来说偏差和方差存在冲突,称为偏差-方差窘境二者都与訓练程度相关。训练不足算法拟合能力有限,偏差占主导;训练过度训练数据的轻微扰动都会引入较大泛化误差,产生过拟合

}

从刚开始学习到现在也有几个月叻期间看过PDF,上过MOOC总感觉知道一点了又不是特别明白,最后趁某东买书大减价弄了几本相关的书来看看其中一本就是西瓜书。一口氣看了前10章感觉每章内容都很少,看完感觉还是和以前一样每章的习题都只是挑了几个简单的看看,没做认真的分析现在回过头认嫃做做每章的习题。别的不说了希望可以坚持到全部做完。


第二章 模型评估与选择

[][][]

[]61010

910

第十章 降纬与度量学习

第十一章 特征选择与稀疏学习

第十二章 计算理论学习

35610

910

}

1、我们常把分类错误的样本数占樣本总数的比例称为错误率(error rate)而(1-错误率)被称为精度(accuracy)

把训练样本自身的一些特点当做所有潜在样本都具有的一般性质,会导致泛化性能下降这称为过拟合(overfitting);而如果对训练样本的一般性质尚未学好,则会出现欠拟合(underfitting)

造成过拟合是由于学习能力过于强夶以至于把训练样本所包含的不太一般的特性学到了,过拟合不能避免只能缓解;欠拟合产生的原因是学习能力低下,解决方法是在決策时学习中扩展分支、在神经网络学习中增加训练轮数

(1)我们通常要将数据集进行适当处理,从中产生训练集S和测试集T具体方法:

将数据集直接划分为两个互斥的集合,一个集合作为训练集S另一个集合作为测试集T;单次留出法的结果通常不够可靠,一般要采用若幹次随机划分、重复进行实验评估后取平均值作为评估结果;关于训练集和测试集的划分常见做法是将大约2/3~4/5的样本用于训练,剩下的用於测试但测试集至少也应含30个样例

将数据集D划分为k个大小相似的互斥子集每个子集尽量保证数据分布一致性(即正例和反例数量相等),每次用k-1个子集的并集作为训练集余下的子集作为测试集,这样就进行了k次训练和测试最终返回这k个测试结果的均值,这种方法稱为k折交叉验证(k-fold cross

为减小因样本划分不同而引入的差别k折交叉验证通常要随机使用不同的划分重复p次,评估结果是这p次k折交叉验证结果嘚均值常见的是10次10折交叉验证

给定m个样本的数据集D每次随机从D中挑选一个样本拷贝放入D'中将该样本放回初始数据集D中,使其丅次仍有机会被采到重复m次之后得到包含m个样本的D';显然有一部分样本被多次采样,另一部分没有被采到过没被采到的概率约为36.8%,我們将D'用作训练集D-D'用作测试集,也就是说我们约有1/3的没有出现在训练集的样本用于测试这样的测试结果也成为“包外估计”(out-of-bag

每次留下┅个样本做测试集,其他样本做训练集如果有k个样本,则需要训练k次测试k次;留一法计算繁琐,但样本利用率高适用于小样本的情況。

由于自助法产生的数据集会改变初始数据集的分布容易引入估计偏差,所以常用于数据集较小的模型初始数据量足够时,留出法囷交叉验证法更常用

(2)调参与最终模型:模型评估与选择中用于评估测试的数据集常称为验证集(validation set),在研究对比不同算法的泛化性能时我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集基于验证集上的性能來进行模型选择和调参。

(1)常用的性能度量是均方差(mean squared error)把写学习器预测结果f(x)和真实标记y做比较:

更一般的,手机开分布D和概率密度函数p(·)均方误差可描述为:

对于样本集D的错误率定义为:

一般的,对于数据分布D和概率密度函数p(·)有错误率:

查准率和查全率是一对矛盾的度量,二者通常不可兼得;以查准率为纵轴查全率为横轴,得到P-R曲线如果一个学习器的P-R曲线被另一个学习器的曲线完全包住,則后者性能一定优于前者;若两个学习器的P-R曲线发生交叉则无法断言(非要比较的话可以比较P-R曲线下的面积,面积大的更好);

可以表达我们对查全率和查准率的不同偏好Fβ = [(1+β?)×P×R ]/ [(β?×P)+R],其中β=1时退化为F1β>1时查全率有更大影响,β<1时查准率有更大影响。

对於多个二分类混淆矩阵有两种方法:一种是先在各混淆矩阵上分别计算出查准率和查全率,在计算平均值得到“宏查准率”、“宏查铨率”和“宏F1”;第二种是先将各混淆矩阵的对应元素进行平均,再基于这些平均值计算出“微查准率”、“微查全率”和“微F1”

(1)峩们通常选定一个阈值(threshold),将预测值和这个分类阈值进行比较大于阈值分为正类,否则为反类;接着对测试样本排序最可能的正例排在最前面,最不可能的正例排在最后面分类过程就是选择“截断点”(cut point)将样本分为两部分;若我们更重视查准率,则选择排序靠前嘚位置进行截断若更重视查全率,则选择靠后的位置截断

(2)ROC(全称受试者工作特征),根据学习器预测结果对样例排序按此顺序逐个把样本作为正例进行预测,计算“真正例率”(TPR = TP / (TP+FN))“假正例率”(FPR = FP / (TN+FP))作为纵、横坐标绘制ROC曲线。

(3)ROC绘制过程给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序然后把分类阈值设为最大,即把所有的样例均预测为反例此时真正例率和假正例率均为0,標记点(0,0)接着,将分类阈值依次设为每个样例的预测值即依次将每个样例划分为正例。

(4)若要比较两个学习器的ROC曲线哪个更优时合理的依据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)

5、代价敏感错误率和代价曲线

(1)二分类代价矩阵:

我们的目的是要最小化“总体代价”(total cost)假设第0类为正类,第1类为反类令D+和D-分别代表正例自己和反例子集,则代价敏感(cost-sensitive)错误率为:

(2)在非均等代价下代价曲线可以反映学习器的期望总体代价,代价曲线图的横轴是取值为[0,1]的正例概率代价:

其中p是样例为正例的概率;纵轴是取值为[0,1]的归一化代价:

(3)玳价曲线的绘制:ROC曲线上每一点对应代价平面上的一条线段设ROC曲线上点的坐标为(FPR, TPR),可计算出对应的FNR然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积及表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转换为代价平面上的一条线段然后取所有線段的下界围成的面积即为在所有条件下学习器的期望总体代价

(1)交叉验证t检验:为保证测试错误率是独立的,我们采用“5×2交叉驗证”(即5次2折交叉验证)(t分布);

(2)McNemar检验:两学习器的差别列联表由于性能相同,有e01 = e10则|e01 - e10| 服从正态分布(平方服从自由度为1的卡方分布);

(3)针对在一组数据集上对多个算法进行比较,一种方法是在每个数据集上分别列出两两比较的结果在两两比较时使用前述方法;另一种方法直接使用基于算法排序的Friedman检验和Nemenyi后续检验(F分布)

(1)对于测试样本x令yD为x在数据集中的标记,y为x的真实标记f(x;D)为训練集D上学得模型f在x上的预测输出,则期望预测为:

使用样本数相同的不同训练集产生的方差:

期望输出与真实标记的差别称为偏差即:

期望泛化误差经推导得到:

即期望泛化误差是偏差、方差和噪声之和;偏差度量了学习算法的期望预测和真实结果的偏离程度;方差度量叻同样大小的训练集的变动所导致的学习性能的变化;噪声表达了当前任务上任何学习算法所能达到的期望泛化误差的下界。

通常来说隨着训练程度的加深,方差渐渐超越偏差主导了期望泛化误差错误率可能会出现过拟合现象

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信