周志华《机器学习》习题答案及解析-第二章模型评估与选择

2.1

留出法要求 训练/测试集的划分尽可能保持数据分布的一致性,故而需采用「分层抽样法」。

对训练集来说,需要在500个正例当中抽出350个,从500个负例中抽出350个,故结果划分方式的数量应该是:

\(\binom{500}{350}\) * \(\binom{500}{350}\)

2.2

10折交叉验证每次抽取的训练集正负样本比例刚好是1:1,故而模型其实是随机猜测的结果,所以每一次测试结果的准确率都是50%,故而10折交叉验证法的错误率应该是50%。

使用留一法时,如果留出来测试样本的1个是正例,则训练样本中正负样本的比例是49:50,这时模型会将测试样本识别为负例;如果流出来的测试样本是负例,则训练样本中正负样本比例是50:49,这时模型会将测试样本识别为正例。故留一法得到测试结果错误率是100%。

2.3

我认为是不一定的,F1评估的是测试集的效果,P-R 曲线评估的是整个测试集模型效果分布,而 BEP 只是 P-R 曲线上的一个点,是评估 P-R 曲线效果的一种方式。

2.4

当数据集中的正负样本确定时,给定 P、R 可以得到 TPR 和 FPR,给定 TPR、FPR 可以得到 P、R,且TPR = R。因为给定的数据集下,已知 P、R ,则混淆矩阵确定,从而得到一个对应的 TPR 和 FPR,反之亦然。

参考:《The Realtionship Between Precision-Recall and ROC Curvves》(Jesse Davis, Mark Goadrich)

2.5(待解决)

2.6

  1. 错误率跟 ROC 曲线都是模型评估的方式
  2. 错误率评估的是测试集效果,而 ROC 曲线评估的是模型结果的分布情况
  3. ROC 曲线每个点对应了一个 TPR 与 FPR,此时对应了一个错误率。

2.7

ROC曲线上的坐标为(TPR,FPR),可以计算出假反例率FNR=1-TPR,然后在代价平面上可以得到一条从(0,FPR)到(1,FNR)的线段。代价曲线可以由(0,FPR)到(1,FNR)的曲线族包络得到。由于ROC曲线是连续的,故必然有确定的一条代价曲线与之对应。

反之,对代价曲线上的任何一点作切线,可以得到对应的FPR与FNR,即可以得到ROC曲线上一个点的坐标。因此代价曲线也有一条对应的ROC曲线存在。

参考:http://lib.csdn.net/article/machinelearning/37033

2.8

优点 缺点
Min-Max 保留了原始分布,规范化后每个元素都是正的 结果受机智影响严重
Z-score 符合高斯分布,在特定场景下符合需求 需要计算方差,计算复杂度较高

2.9

卡方检验在 McNemar 检验中提到过,这里可以直接引用 Wikipedia 上的解释:

  1. 建立零假说(Null Hypothesis),即认为观测值与理论值的差异是由于随机误差所致;
  2. 确定数据间的实际差异,即求出卡方值;
  3. 如卡方值大于某特定概率标准(即显著性差异)下的理论值,则拒绝零假说,即实测值与理论值的差异在该显著性水平下是显著的。

2.10(待解决)