第二章:模型评估与选择

试答系列:“西瓜书”-周志华《机器学习》习题试答


目录

2.1 数据集包含1000个样本,其中有500正例,500反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式。

2.2 数据集有100个样本,正,反例各一半,假定学习到的模型将新样本分类为训练样本数较多的类别(两类相同时随机猜测),试给出10折交叉验证法和留一法分别对错误率进行评估所得结果。

2.3 若学习器A的F1值比学习器B高,试析A的BEP值是否也比B高。

2.4 试述真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)之间的联系。

2.5 证明式(2.22)

2.6 试述错误率与ROC曲线的联系。

2.7 试证明任意一条ROC曲线都有一条代价曲线与之对应,反之亦然。

2.8 Min-Max规范化和z-score规范化是两种常见的规范化方法,试析两者的优缺点。

2.9 试述χ2检验过程。

2.10 试述在Friedman检验过程中使用(2.34)和(2.35)的区别。


2.1 数据集包含1000个样本,其中有500正例,500反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式。

(C_{500}^{150})^{2}

2.2 数据集有100个样本,正,反例各一半,假定学习到的模型将新样本分类为训练样本数较多的类别(两类相同时随机猜测),试给出10折交叉验证法和留一法分别对错误率进行评估所得结果。

10折交叉验证法将样本分为10份,每份含5个正例,5个反例:

1 2 3 4 5 6 7 8 9 10

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

5+

5-

选其中一份作为测试集,其余9份作为训练集,由于训练集中正例和反例样本数总是相等,所以训练到的模型将是随机猜测的模型,因此,最终错误率将接近于50%

留一法将样本分为100份,依次为正样本,负样本:

1 2 3 4 5 ...... 99 100
+ - + - + ...... + -

比方说,将第100份作为测试集,假如它为反例,然后将剩余的99个样本作为训练集,训练集中包含正例50个,反例49个,正例多于反例,于是模型会将任何新样本判定为正例,而测试集(第100号样本)为反例,因此测试结果为错误。
            类似的,对于选择其他1~99号所有样本都是如此,都将预测错误。因此,留一法得到的错误率为100%

2.3 若学习器A的F1值比学习器B高,试析A的BEP值是否也比B高。

答:F1值与P,R值有关,F1=2PR/(P+R),可以在P-R图中画出F1值的等值线:

第二章:模型评估与选择_第1张图片

而BEP值为P-R曲线与直线P=R(图中红线)相交的P(或R)值。

设学习器A的F1值比学习器B高,比如,如下图所示情况。然后让学习器继续将当前判定为反例的样本按照“可能性”高一个一个的判定为正例,P、R值随之变化,从而绘制出P-R图,可能有多种情况,两者的BEP值孰高孰低不一定。

第二章:模型评估与选择_第2张图片

2.4 试述真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)之间的联系。

答:首先,观察它们的表达式可知,真正例率(TPR)和查全率(R)完全等同。

为了方便理解,可以根据具体实例来理解这几个比值。

假设有100个西瓜,其中有80个好瓜,20个坏瓜,某个人(他作为一个分类器)从中选出了一部分他所认为的好瓜出来。

查准率P:选出的这部分瓜中好瓜所占比例。

查全率R 或 真正例率TPR:80个好瓜中被成功选出的比例。

假正例率FPR:20个坏瓜中被误选出的比例。

它们之间在数量关系上的联系:

1、(TPR, FPR)-> (P, R):  P=m+TPR/(m+TPR+m-FPR),  R=TPR

2、(P, R)-> (TPR, FPR):  TPR=R,  FPR=(m+/m-)*R(1-P)/P

它们的区别:

1、对于一个分类器,我们希望 P、R、TPR大一些,希望FPR小一些。

2、以上各个系数虽然都是在具体测试集上得到的具体混淆矩阵(TP,FP,FN,TN)计算得出的,但是从概率角度看,可以把TPR(R)看做是好瓜被选中的概率,将其记为P(+|+);FPR可以看作坏瓜被误选的概率,记为P(+|-),它们只与分类器有关,与测试集正负样本比例无关。而查准率P与正负样本比例有关,比如,好瓜较多时,不管谁来选,P值都偏高。

2.5 证明式(2.22)

答:ROC曲线的绘制过程可以这样看:在1×1的坐标区域,横坐标m-等分,纵坐标m+等分,总共划分成m+m-个格子。将所有样本按照预测概率降序排列,从坐标(0,0)开始,一个一个的,若这个样本为正例,则向上走,若这个样本为反例,则往右走。

第二章:模型评估与选择_第3张图片

观察 lrank表达式:

第二章:模型评估与选择_第4张图片

 

假设一个已经绘制好的ROC曲线如下图所示: 

第二章:模型评估与选择_第5张图片

 

考察每一个正例点,如前所述,将正例预测为正例后,ROC曲线将往上走一步,假设走到了上图中的(x,y)处。lrank式中“(排在x+之前的反例数)/m+m-”这一项恰好代表了上图中左侧阴影部分的面积,因为[排在x+之前的反例数]等于阴影部分格子数,而1/m+m-等于每个格子的面积。Irank式中后一项“(与x+并列排行的反例数)/2”代表了某些反例与这个正例的预测概率相等的情况,比如,只有一个反例与之相等,那么可以随机选择先考虑哪一个,这样将会出现两种情况(见上图右),两者的相差一个格子的面积,1/m+m-,取其平均作为最终计算面积。

将所有这样的阴影部分面积累加起来便是ROC曲线上半部分的面积。而整个坐标区域面积为1,ROC下半部分面积为AUC,因此有:AUC=1-lrank.

2.6 试述错误率与ROC曲线的联系。

第二章:模型评估与选择_第6张图片

因此,错误率是ROC曲线横坐标FPR,纵坐标TPR,以及样本比例有关。

观察上式可知,错误率ε的等值线(iso-erro rate)为一条直线,斜率为m-/m+,这正好是ROC图中小格子对角线的斜率。若画出ε的等值线图,应如下图所示:

第二章:模型评估与选择_第7张图片

在ROC曲线中,初始错误率为m+/m,之后每向右走一格,错误率增加1/m,每向上走一格,错误率减小1/m。

当样本数量足够多时,ROC网格将越来越密,最终的ROC曲线将趋近于一条与样本数、样本比例无关的一条确定曲线。并且,斜率为m-/m+的直线簇与ROC相切的点所对应的错误率最低。如下图(左)所示:

第二章:模型评估与选择_第8张图片

按照产生ROC曲线的方法,曲线从(0,0)到(1,1)对应于逐步地降低阈值。(0,0)对应于将所有样本判定为反例,此时为最高阈值(最高标准);(1,1)对应于将所有样本判定为正例,此时为最低阈值(最低标准)。

从上图(右)可以看出,在不同斜率(m-/m+),亦即不同正样比例下,所对应的最小错误率点不一样,从中可以得到定性结论:

为了降低错误率,

正例较多时,趋近于选择低阈值(低标准)的分类器 (好让正样更易被选中);

反例较多时,趋近于选择高阈值(高标准)的分类器 (好让反样不易被选中)。

2.7 试证明任意一条ROC曲线都有一条代价曲线与之对应,反之亦然。

答:首先,在读完教材中对于代价曲线部分的讲解后,还是一头雾水,存在很多疑问,比如:

1、“正例概率代价”这个名称该如何理解,(正例的)(概率性的)(代价)?还是(正例概率)(代价)?表达式又代表什么意义?

2、归一化代价又代表什么意义,为什么要归一化?

3、为什么线段下面积表示期望总体代价?为什么要取所有线段的下界?

在通过网上查阅以及文献阅读[Drummond and Holte, 2006]之后逐渐明了,现将我的理解整理如下:

  • C(-|+)=C(+|-) 的情况

C(-|+)和C(+|-)在教材中分别表示为cost01和cost10,分别代表将正例漏选,反例误选的代价。当C(-|+)=C(+|-)时,可以令其等于1,此时,总的代价为:

cost=FNR*p(+)+FPR*p(-) = FNR*p(+)+FPR*(1-p(+))

该式与上一题(2.6)中错误率的表达式完全等同,这里,P(+)=m+/m 和 p(-)=1-p(+)=m-/m分别代表正例和反例的分布比例,FNR=(1-TPR)表示假反例率。

这里的p(+)在文献中称之为“operating point”,可以直译为“操作点”,意思大概是指一定的限制条件。

按照(2.6)题的做法,在某一固定正样比例p(+)下,若要比较ROC空间中的两个点对应的代价(此时,等同于错误率),可以绘制斜率为(1-p(+))/p(+)的直线簇(等代价线 iso-cost),在直线簇的左上方的那个点的代价更低一些。当一个点在另一个点的左上方,对于所有的p(+)取值来说都有,前者的代价低于后者。在其他情况下,需要画等代价线(iso-cost)来确定,比如下图中,对于p(+)1,A点的代价更低,对于p(+)2,B点的代价更低。

第二章:模型评估与选择_第9张图片

这种在ROC空间画等代价线(iso-cost)的方法较为麻烦,要画很多直线,而且不容易直接看出两个点之间的代价差别。而代价曲线,以p(+)为横坐标,以代价为纵坐标,这样便可以一眼看出在所有p(+)情况下,或者说所有“操作点”下的代价值,以及不同点之间的代价差别。

按照前面的公式:cost=FNR*p(+)+FPR*(1-p(+)),在ROC空间中的一个点(TPR,FPR)可以转换为代价空间中的一条线段,线段两个端点为(0,FPR)和(1,FNR)。下图ROC空间中的A、B两点在代价空间中表现为两条线段。从中可以看出,当p(+)p0时,B的代价更小。

第二章:模型评估与选择_第10张图片

ROC空间和代价空间存在双向的对偶关系:ROC空间的一个点(一条线)对应于代价空间中的一条线(一个点),反之亦然。

ROC空间中的点对应于代价空间中的一条线,前面已经看到。ROC空间中的一条线对应于代价空间中的一个点,该如何理解?(以下个人看法)一种看法是,这条线上的每个点绘制一条直线,这些直线必然有一个共同交点,以这个交点作为代价空间中的那个点。另一种看法,ROC空间中的直线可以看作是等代价线(iso-cost),这条等代价线有一个明确对应的p(+)值和代价值,由此在代价空间确定出一个点来。具体做法如下图所示:ROC空间中斜率为k,截距为b的直线,对应于代价空间中(p(+)=1/(1+k),cost=(1-b)/(1+k))的点。

第二章:模型评估与选择_第11张图片

类似的,代价空间中的一个点(一条线)对应于ROC空间中的一条线(一个点)。

ROC空间中的一组点在代价空间中对应于一组线段,在每个p(+)取值处,处于最下方的线段是当前条件下的最优分类器,于是,由最下方的那些线段可以形成一条下包络线,并称之为代价曲线

第二章:模型评估与选择_第12张图片

现在可以来回答题目给出的问题了(任意一条ROC曲线都有一条代价曲线与之对应,反之亦然)

ROC曲线->代价曲线:

方法1、依次由ROC中的各个点在代价空间中绘制一条线段,然后取所有线段的下包络线。

方法2、由ROC中各个分段线段或者光滑ROC曲线上各个点的切线在代价空间中绘制相应的点,然后把这些点连起来组成代价曲线。

代价曲线->ROC曲线:

完全一样的两种方法。

  • C(-|+)≠C(+|-) 的情况

唯一的变化是对代价空间的x和y坐标进行重新定义:错误率->归一化代价,p(+)->PC(+)。

当代价不均等时,cost=(1-TPR)*p(+)*cos(-|+)+FPR*p(-)*cos(+|-),在ROC空间中的等代价线(ios-cost)的斜率为k=[p(-)cos(+|-)]/[p(+)cos(-|+)]。此时的“操作点”为一定的类比例和误分代价比例,类似于上一题(2.6)可以得到定性结论:

为了降低代价,

正例较多,或者正例漏选代价大时,趋近于选择低阈值(低标准)的分类器;

反例较多,或者反例误选代价大时,趋近于选择高阈值(高标准)的分类器。

由于p和cost总是以乘积的形式一起出现,可以令p(-)cos(+|-)=pc(-), p(+)cos(-|+)=pc(+),”pc”意味着“概率乘以代价”,这就解答了前面对于名词“正例概率代价”的疑问,意思应该是“正例概率乘以代价”。

这样,代价可以表达为 cost=FNR*pc(+)+FPR*pc(-),但是这对于代价曲线绘制仍然有一定困难。其中FNR, FPR独立变化,取值∈[0,1],而pc(+), pc(-)也是独立变化,取值∈[0,+∞],最终计算到的cost取值∈[0,+∞]。对于一个确定的分类器,FNR,FPR确定,cost是pc(+)和pc(-)两个变量的函数,这样需要在三维空间绘制,而且坐标轴取值无限。

解决这些问题的办法是归一化。如前已知,为了比较两个分类器(两个ROC空间点)代价孰高孰低,关键在于斜率k=pc(-)/pc(+)这个比值。于是,对pc进行归一化,使之取值为[0,1],令PC(+)=pc(+)/[pc(+)+pc(-)],PC(-)=pc(-)/[pc(+)+pc(-)],PC(+)+PC(-)=1,并以PC(+)作为代价空间的横坐标。

纵坐标也需要进行归一化,使之取值在[0,1],由于

cost=FNR*pc(+)+FPR*pc(-)

在给定“操作点”下,cost最大可能取值为:max(cost)= pc(+)+pc(-)

于是归一化的代价为:

Norm[cost]= [FNR*pc(+)+FPR*pc(-)]/max(cost)

=FNR*PC(+)+FPR*PC(-)

= FNR*PC(+)+FPR*(1-PC(+))

与前面“C(-|+)=C(+|-)”时的表达式相比较,除了cost变为Norm[cost],p(+)变为PC(+),其他完全一致,因此代价曲线与前文所述完全类似,只需将横纵坐标名称修改一下即可:

第二章:模型评估与选择_第13张图片

然后用同样的方法比较在同一个操作点--PC(+)下,两个分类器的代价哪个更低一些。

2.8 Min-Max规范化和z-score规范化是两种常见的规范化方法,试析两者的优缺点。

答:两者的都是一种线性变换,Min-Max规范化实现的效果是将数据转换至所需的最小值和最大值区间内,z-score规范化实现的效果是,数据的均值为0,方差为1。优缺点待以后遇到具体问题再回头来说。

2.9 试述χ2检验过程。

答:[留个空位待填]

2.10 试述在Friedman检验过程中使用(2.34)和(2.35)的区别。

答:[留个空位待填]

你可能感兴趣的:(周志华-机器学习)