机器学习 第二章:模型评估与选择-总结
1、数据集包含1000个样本,其中500个正例,500个反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式。
留出法将数据集划分为两个互斥的集合,为了保持数据的一致性,应该保证两个集合中的类别比例相同。故可以用分层采样的方法。训练集包含350个正例与350个反例,测试集包含150个正例与150个反例。
故有500C350*500C350 种划分方式(排列组合)
2、数据集包含100个样本,其中正反例各一半,假定学习算法所产生的模型是将新样本预测为训练样本数较多的类别(训练样本数相同时进行随机猜测),试给出用10折交叉验证法和留一法分别对错误率进行评估所得的结果。
10折交叉检验:由于每次训练样本中正反例数目一样,所以讲结果判断为正反例的概率也是一样的,所以错误率的期望50%。
留一法:如果留下的是正例,训练样本中反例的数目比正例多一个,所以留出的样本会被判断是反例;同理,留出的是反例,则会被判断成正例,所以错误率100%。
3、若学习器A的F1值比学习器B高,试析A的BEP值是否也比B高。
分类器将所有训练样本按自己认为是正例的概率排序,排在越前面分类器更可能将它判断为正例。按顺序逐个把样本标记为正,当查准率与查全率相等时,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、试证明AUC=1-lrank
与BEP一样,,学习器先将所有测试样本按预测概率排序,越可能是正的排在越前面。然后依次遍历,每扫描到一个位置,里面如果只有正例,则ROC曲线垂直向上,如果只有反例,曲线水平往右,如果既有正例也有反例,则斜向上。如图所示
由于TPR与FPR的分母是常数,所以这里按比例扩大了坐标(分别是真实正例和真实反例的数目倍),可以更好看出曲线走势。
可以看出一共有20个测试样本,10个正,10个反。学习器排序的结果是
+,-,(+,+),(+,-),(+,+),(-,-),(+,+),(-,-,-),+,-。其中括号内的样本排在相同的位置。
<(+,+,-,-)与(+,-),(+,-)是同样效果>
公式2.21累加了所有不在正例的反例数目,其中同样的位置标记为0.5,在正例前面标记为1。从图中可以看出,折线每次向右(右上)延伸,表示扫描到了反例,折线上方对应的面积,就是该反例后面有多少个正例,每个正例是一个正方形,对应的面积是1。同位置上的正例是个三角形,对应的面积是0.5。计算出总面积后,由于ROC图的坐标是归一化的,所以总面积要除以一开始放大的倍数,也就是m+m−。
6、试述错误率与ROC曲线之间的关系
ROC曲线每个点对应了一个TPR与FPR,此时对应了一个错误率。
Ecost=(m+∗(1−TPR)∗cost01+m−∗FPR∗cost10)/(m++m−)
学习器会选择错误率最小的位置作为截断点。
7、试证明任意一条ROC曲线都有一条代价曲线与之对应,反之亦然。
由定义可以知道TPR与FPR都是由0上升到1,那么FNR则是由1下降到0。
每条ROC曲线都会对应一条代价曲线,由于第一条代价线段的是(0,0),(1,1),最后是(0,1)(1,0),
所有代价线段总会有一块公共区域,这个区域就是期望总体代价,而这块区域的边界就是代价曲线,且肯定从(0,0)到(1,0)。
在有限个样本情况下,ROC是一条折线,此时根据代价曲线无法还原ROC曲线。但若是理论上有无限个样本,ROC是一条连续的折线,代价曲线也是连续的折线,每个点的切线可以求出TPR与FNR,从而得到唯一的ROC曲线。
8、Min-Max规范化与z-score规范化如下所示。试析二者的优缺点。
Min−max规范化方法简单,而且保证规范化后所有元素都是正的,每当有新的元素进来,只有在该元素大于最大值或者小于最小值时才要重新计算全部元素。但是若存在一个极大(小)的元素,会导致其他元素变的非常小(大)。
z−score标准化对个别极端元素不敏感,且把所有元素分布在0的周围,一般情况下元素越多,0周围区间会分布大部分的元素,每当有新的元素进来,都要重新计算方差与均值。
9、试述卡方检验过程。
1.随机样本数据;
2.卡方检验的理论频数不能太小.
两个独立样本比较可以分以下3种情况:
1.所有的理论数T≥5并且总样本量n≥40,用Pearson卡方进行检验.
2.如果理论数T<5但T≥1,并且n≥40,用连续性校正的卡方进行检验.
3.如果有理论数T<1或n<40,则用Fisher’s检验.
上述是适用于四格表.
R×C表卡方检验应用条件:
1.R×C表中理论数小于5的格子不能超过1/5;
2.不能有小于1的理论数.我的实验中也不符合R×C表的卡方检验.可以通过增加样本数、列合并来实现.
10、试述在使用Friedman检验中使用式(2.34)与(2.35)的区别
书上说Friedman检验,在Nk比较大时,平均序值ri近似于正态分布,均值为k+12,
方差为k2−112(其实我觉得ri的方差是k2−112N)。
即:ri~N(k+12,k2−112)
所以12Nk2−1(ri−k+12)2~χ2(1)
统计量12Nk2−1∑k(ri−k+12)2由于k个算法的平均序值ri是有关联的,知道其中k−1个就能推出最后一个,所以自由度为k−1,在前面乘上k−1k,最终得到Friedman统计量为
fri=k−1k∗12Nk2−1∑k(ri−k+12)2
猜测:由于Friedman统计量只考虑了不同算法间的影响,而没去考虑不同数据集(其他方差)所带来的影响,所以书上说这个Friedman统计量太保守。
对序值表做方差分析:
总方差SST=N∗(E(X2)−(EX)2)=N∗k∗(k2−1)/12自由度N∗(k−1)
算法间方差SSA=N∗∑k(ri−k+12)2 自由度k−1
其他方差 SSE=SST−SSA自由度(N−1)∗(k−1)
做统计量f=SSA/(k−1)SSE/((N−1)∗(k−1))=(N−1)friN(k−1)−fri ,f服从(k−1)和(N−1)∗(k−1)的F分布