机器学习(周志华) 参考答案 第二章 模型评估与选择

版权声明:本文为博主原创文章,技术有限,如果发现错误或问题请告知博主,转载请注明出处,谢谢。 https://blog.csdn.net/icefire_tyh/article/details/52065867

机器学习(周志华) 参考答案 第二章 模型评估与选择

机器学习(周志华西瓜书) 参考答案 总目录


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

一个组合问题,从500正反例中分别选出150正反例用于留出法评估,所以可能取法应该是(C150500)2种。


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

10折交叉检验:由于每次训练样本中正反例数目一样,所以讲结果判断为正反例的概率也是一样的,所以错误率的期望是50%。
留一法:如果留下的是正例,训练样本中反例的数目比正例多一个,所以留出的样本会被判断是反例;同理,留出的是反例,则会被判断成正例,所以错误率是100%。


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

F1值的大小与BEP值并没有明确的关系。
两个分类器的F1值得大小与他们的BEP值大小并没有明确的关系(没去找)
这道题这里用反推,设计两个BEP值相同的分类器,如果他们的F1值不一样,那么这道题的结论就是否定的
再加点我看了评论后的疑惑:
BEP值就是F1值吗?
BEP值是在P=R时取到的,也就是BEP=P=R。如果在计算F时也要定义P=R,那么F1Fβ将会恒等于BEP,那么P,R,F在这里有什么意义呢?
这里分两种情况:
第一就是我的理解,在计算F1时就是按照分类器真实的分类结果来计算P,R,再根据PR计算F1。当这个分类器正好P=R时,有P=R=BEP=F1。否则BEP的计算不能用当前的PR,而是通过一步一步尝试到查准率=查全率时,P’=R’=BEP。
第二种就是不存在我下面假设的分类器,分类器始终会在P=R的位置进行截断(截断指的是分类器将所有样本按分为正例的可能性排序后,选择某个位置。这个位置前面分类为正,后面分类为负)。但是这个可能吗?这种情况下F1=Fβ=BEP恒成立,分类器的评价本质将会变成了样本的正例可能性排序,而不是最终的样本划分结果。

分类器将所有训练样本按自己认为是正例的概率排序,排在越前面分类器更可能将它判断为正例。按顺序逐个把样本标记为正,当查准率与查全率相等时,BEP=查准率=查全率。当然分类器的真实输出是在这个序列中的选择一个位置,前面的标记为正,后面的标记为负,这时的查准率与查全率用来计算F1值。可以看出有同样的BEP值的两个分类器在不同位置截断可能有不同的F1值,所以F1值高不一定BEP值也高。
比如:

1/+ 2/+ 3/+ 4/+ 5/+ 6/- 7/- 8/- 9/- 10/-
1/+ 2/+ 3/+ 4/+ 6/- 5/- 7/- 8/- 9/- 10/-
1/+ 2/+ 3/+ 4/+ 6/+ 5/- 7/- 8/- 9/- 10/-

第一行是真实的测试样本编号与分类,第二三行是两个分类器对所有样本按为正例可能性的排序,以及判断的结果。显然两个分类器有相同的BEP值,但是他们的F1值一个是0.89,一个是0.8


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

查全率: 真实正例被预测为正例的比例
真正例率: 真实正例被预测为正例的比例
显然查全率与真正例率是相等的。
查准率:预测为正例的实例中真实正例的比例
假正例率: 真实反例被预测为正例的比例
两者并没有直接的数值关系。


5.试证明(2.22)AUC=1lrank

从书34页b图看来,AUC的公式不应该写的这么复杂,后来才发现原来这个图并没有正例反例预测值相等的情况。当出现这种情况时,ROC曲线会呈斜线上升,而不是这种只有水平和垂直两种情况。

由于一开始做题时并没有想过ROC曲线不可以是斜线,所以画了这张图,如果不存在正例反例预测值相等的情况,那么斜线也没必要存在。
但是在维基百科上看到一副图,貌似也存在斜线的ROC,但是不知道含义是否和我这里写的一样。
https://en.wikipedia.org/wiki/Receiver_operating_characteristic
引用一幅有斜线的ROC曲线
这里写图片描述

BEP一样,学习器先将所有测试样本按预测概率排序,越可能是正的排在越前面。然后依次遍历,每扫描到一个位置,里面如果只有正例,则ROC曲线垂直向上,如果只有反例,曲线水平往右,如果既有正例也有反例,则斜向上。如图所示
ROC曲线
由于TPRFPR的分母是常数,所以这里按比例扩大了坐标(分别是真实正例和真实反例的数目倍),可以更好看出曲线走势。

可以看出一共有20个测试样本,10个正,10个反。学习器排序的结果是
+,,(+,+),(+,),(+,),(+,+),(,),(+,+),(,,),+,。其中括号内的样本排在相同的位置。
<(+,+,,)(+,),(+,)是同样的效果>

公式2.21累加了所有不在正例的反例数目,其中同样的位置标记为0.5,在正例前面标记为1。从图中可以看出,折线每次向右(右上)延伸,表示扫描到了反例,折线上方对应的面积,就是该反例后面有多少个正例,每个正例是一个正方形,对应的面积是1。同位置上的正例是个三角形,对应的面积是0.5。计算出总面积后,由于ROC图的坐标是归一化的,所以总面积要除以一开始放大的倍数,也就是m+m


6.试述错误率与ROC曲线之间的关系

ROC曲线每个点对应了一个TPRFPR,此时对应了一个错误率。
Ecost=(m+(1TPR)cost01+mFPRcost10)/(m++m)
学习器会选择错误率最小的位置作为截断点。


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

由定义可以知道TPRFPR都是由0上升到1,那么FNR则是由1下降到0
每条ROC曲线都会对应一条代价曲线,由于第一条代价线段的是(0,0),(1,1),最后是(0,1)(1,0),
所有代价线段总会有一块公共区域,这个区域就是期望总体代价,而这块区域的边界就是代价曲线,且肯定从(0,0)(1,0)
在有限个样本情况下,ROC是一条折线,此时根据代价曲线无法还原ROC曲线。但若是理论上有无限个样本,ROC是一条连续的折线,代价曲线也是连续的折线,每个点的切线可以求出TPRFNR,从而得到唯一的ROC曲线。


8.Min-Max规范化与z-score规范化如下所示。试析二者的优缺点。

Minmax规范化方法简单,而且保证规范化后所有元素都是正的,每当有新的元素进来,只有在该元素大于最大值或者小于最小值时才要重新计算全部元素。但是若存在一个极大(小)的元素,会导致其他元素变的非常小(大)。
zscore标准化对个别极端元素不敏感,且把所有元素分布在0的周围,一般情况下元素越多,0周围区间会分布大部分的元素,每当有新的元素进来,都要重新计算方差与均值。


9.试述卡方检验过程。

略(……)


10.试述在使用Friedman检验中使用式(2.34)与(2.35)的区别

书上说Friedman检验,在Nk比较大时,平均序值ri近似于正态分布,均值为k+12,
方差为k2112(其实我觉得ri的方差是k2112N)。

即:ri~N(k+12,k2112)

所以12Nk21(rik+12)2~χ2(1)

统计量12Nk21k(rik+12)2由于k个算法的平均序值ri是有关联的,知道其中k1个就能推出最后一个,所以自由度为k1,在前面乘上k1k,最终得到Friedman统计量为
fri=k1k12Nk21k(rik+12)2

猜测:由于Friedman统计量只考虑了不同算法间的影响,而没去考虑不同数据集(其他方差)所带来的影响,所以书上说这个Friedman统计量太保守。
对序值表做方差分析:
总方差SST=N(E(X2)(EX)2)=Nk(k21)/12自由度N(k1)
算法间方差SSA=Nk(rik+12)2 自由度k1
其他方差 SSE=SSTSSA自由度(N1)(k1)

做统计量f=SSA/(k1)SSE/((N1)(k1))=(N1)friN(k1)fri ,f服从(k1)(N1)(k1)F分布

猜你喜欢

转载自blog.csdn.net/icefire_tyh/article/details/52065867