[西瓜书习题] 第二章 模型评估与选择
2.1 数据集包含1000个样本,其中500个正例,500个反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式。
留出法将数据集划分为两个互斥的集合,为了保持数据的一致性,应该保证两个集合中的类别比例相同。故可以用分层采样的方法。
所以训练集包含350个正例与350个反例,测试集包含150个正例与150个反例。
排列组合为
2.2 数据集包含100个样本,其中正反例各一半,假定学习算法所产生的模型是将新样本预测为训练样本数较多的类别(训练样本数相同时进行随机猜测),试给出用10折交叉验证法和留一法分别对错误率进行评估所得的结果。
10折交叉检验:由于每次训练样本中正反例数目一样,所以讲结果判断为正反例的概率也是一样的,所以错误率的期望50%。
留一法:如果留下的是正例,训练样本中反例的数目比正例多一个,所以留出的样本会被判断是反例;同理,留出的是反例,则会被判断成正例,所以错误率100%。
2.3 若学习器A的F1值比学习器B高,试析A的BEP值是否也比B高。
查准率 P = TP / (TP + FP) 查全率 R = TP / (TP + FN)
BEP:平衡点,Break-Event Point,是“查准率 = 查全率”时P-R曲线上的的取值。
F1度量:F1 = 2 * P * R / (P + R) = 2 * TP / (样例总数 + TP - TN) 是基于查准率和查全率的调和平均。
回答1:
分类器将所有训练样本按自己认为是正例的概率排序,排在越前面分类器更可能将它判断为正例。按顺序逐个把样本标记为正,当查准率与查全率相等时,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。
回答2:
不等式证明,成立。
回答3:
F1是查准率与查全率的调和平均,而BEP仅仅是 查准率=查全率 时的一个取值,具有特殊性。所以F1比BEP更能描述性能优劣。
当满足特殊性时,不一定满足全局性能,当BEP相等时,F1仅在相等点处也相等,但通过后一个公式计算不然。
2.4 试述真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)之间的联系。
查全率: 真实正例被预测为正例的比例
真正例率: 真实正例被预测为正例的比例
显然查全率与真正例率是相等的。
查准率:预测为正例的实例中真实正例的比例
假正例率: 真实反例被预测为正例的比例
两者并没有直接的数值关系。
2.5 试证明式(2.22)。![](https://images2015.cnblogs.com/blog/1180557/201707/1180557-20170713205320712-930926861.png)
与BEP一样,学习器先将所有测试样本按预测概率排序,越可能是正的排在越前面。然后依次遍历,每扫描到一个位置,里面如果只有正例,则ROC曲线垂直向上,如果只有反例,曲线水平往右,如果既有正例也有反例,则斜向上。
公式2.21累加了所有不在正例的反例数目,其中同样的位置标记为0.5,在正例前面标记为1。从图中可以看出,折线每次向右(右上)延伸,表示扫描到了反例,折线上方对应的面积,就是该反例后面有多少个正例,每个正例是一个正方形,对应的面积是1。同位置上的正例是个三角形,对应的面积是0.5。计算出总面积后,由于ROC图的坐标是归一化的,所以总面积要除以一开始放大的倍数,也就是m+m−。
2.6 试述错误率与ROC曲线之间的关系。
ROC曲线每个点对应了一个TPR与FPR,此时对应了一个错误率。
2.7 试证明任意一条ROC曲线都有一条代价曲线与之对应,反之亦然。
ROC曲线上每一点(FPR,TPR)对应了代价平面上的一条线段。FNR = 1 - TPR,即可在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示该条件下的期望总体代价。
2.8 Min-Max规范化与z-score规范化如下所示。试析二者的优缺点。P48
Min−max规范化方法简单,而且保证规范化后所有元素都是正的,每当有新的元素进来,只有在该元素大于最大值或者小于最小值时才要重新计算全部元素。但是若存在一个极大(小)的元素,会导致其他元素变的非常小(大)。
z−score标准化对个别极端元素不敏感,且把所有元素分布在0的周围,一般情况下元素越多,0周围区间会分布大部分的元素,每当有新的元素进来,都要重新计算方差与均值。
2.9 试述卡方检验过程。
卡方检验原理及应用
http://guoze.me/2015/09/07/chi-square/
2.10 试述在使用Friedman检验中使用式(2.34)与(2.35)的区别。
原始Friedman检验要求k较大时,平均序值ri近似于正态分布,均值(k+1)/2,方差(k^2-1)/12。
即:
所以
统计量由于k个模型的平均序值ri是有关联的,知道k-1个就能推导出最后一个,所以自由度为k-1,所以前面要乘上(k-1)/k,得到:
猜测:由于Friedman统计量只考虑了不同算法间的影响,而没去考虑不同数据集(其他方差)所带来的影响,所以书上说这个Friedman统计量太保守。 (k较大才行,比如k>30)
所以对序值表做方差分析:
总方差,自由度 N∗(k−1)
算法间方差,自由度 k−1
其他方差 SSE = SST − SSA 自由度 (N−1)∗(k−1)
做统计量,f服从(k−1)和(N−1)∗(k−1)的F分布