《机器学习》 西瓜书习题 第 2 章

习题

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

  如果划分要保证正例和反例一样多的话, 那么划分方式数量 \(n\)
\[\begin{aligned} n &= C^{500\times35\%}_{500}\times C_{500}^{500\times 35\%}\\ &=(C^{175}_{500})^{2} \end{aligned}\]
  如果不考虑的话则有
\[n = C^{500\times 70\%}_{500}=C^{350}_{500}\]


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

   \(10\) 折交叉验证, 我们认为划分是随意的, 那么根据对称性可知, 对于每个子集来说正例更多的概率为 \(\frac{1}{2}\) , 反例也是一样, 所以预测测试集相当于随机预测, 即错误率为 \(50\%\) .
  而留一法要么选择一个正例作为测试集, 要么选择一个反例, 无论是哪一种, 总会预测与测试集相反的结果, 即正确率为 \(0\%\) .
  这告诉我们留一法并不一定比交叉验证法更 '好' . 而要看具体情况选择要划分为几个子集 (即几折交叉验证, 而留一法只是交叉验证法的特例, 即子集数等于样本数, 每个子集包含一个样本) .


  • \(2.3\) 若学习器 \(A\)\(F1\) 值比学习器 \(B\) 高, 试析 \(A\)\(BEP\) 值是否也比 \(B\) 高.

  \(F1\) 值和 \(BEP\) 并没有必然联系, 很容易就可以找出一个反例.


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

根据表
\(2.1\) 分类结果混淆矩阵

预测结果
真实情况
正例 反例
正例 \(TP\) (真正例) \(FN\) (假反例)
反例 \(FP\) (假正例) \(TN\) (假反例)

则有
\[\begin{aligned} TPR = \frac{TP}{TP+TN}\\ FPR = \frac{FP}{FP + FN}\\ P = \frac{TP}{TP + FP}\\ R = \frac{TP}{TP + FN} \end{aligned}\]


  • \(2.5\) 试证明式 (\(2.22\)).

\[\begin{aligned} \ell_{rank} = \frac{1}{m^+m^-}\sum_{\boldsymbol{x}^+\in D^+}\sum_{\boldsymbol{x}^-\in D^-}\Big(\mathbb{I}\big(f(\boldsymbol{x^+}) < f(\boldsymbol{x^-})\big)+\frac{1}{2}\mathbb{I}\big(f(\boldsymbol{x^+})=f(\boldsymbol{x^-})\big)\Big) \end{aligned} \tag{2.21}\]
\[AUC = 1 - \ell_{rank}\tag{2.22}\]
  其实只要去分解 \((2.21)\) 就能发现它求的是 \(ROC\) 曲线每一小段的右边的面积之和. \(\frac{1}{m^+m^-}\) 求的是单位矩形的面积, \(\sum\limits_{\boldsymbol{x}^-\in D^-}\mathbb{I}\big(f(\boldsymbol{x^-}) < f(\boldsymbol{x^-})\big)\) 求的是左边有多少个单位矩形, \(\sum\limits_{\boldsymbol{x}^+\in D^+}\) 是对每一段都进行上述求和, 而 \(\frac{1}{2}\mathbb{I}\big(f(\boldsymbol{x^+})=f(\boldsymbol{x^-})\big)\) 是考虑到了斜线的结果 (某个正例和反例的分类概率相同) .


猜你喜欢

转载自www.cnblogs.com/cloud--/p/12122258.html