周志华机器学习课后习题解析【第二章】

作者 | 我是韩小琦

链接 | https://zhuanlan.zhihu.com/p/42435889

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

答:排列组合问题。

训练/测试集的划分要尽可能保存数据分布一致

那么训练集中应该包括350个正例和350个反例,剩余的作测试集,那么划分方式应该有 种。

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

答:

10折交叉验证:交叉验证中每个子集数据分布要尽可能保持一致,那么本题中10次训练中每次正反例各占45,模型训练结果随机猜测,错误率期望为50%。

留一法:若留出样本为正例,训练集中则有50个反例和49个正例,模型预测为反例;反之留出样本为反例,模型预测为正例,错误率为100%。

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

答:

说一下自己理解吧

先看看F1值的定义,

 

其中:

 

即查准率(Precision ),【预测为正例且真实为正例的数量】/【预测为正例的数量】,说白了关心预测为正样本时的准确率; 

即查全率(又称召回率Recall),【预测为正例且真实为正例的数量】/【真实为正例的数量】。F1值计算中对查准率和查全率都同等重视。

再看看BEP值

首先目前很多分类算法输出的都是0-1之间的一个概率值,比如逻辑回归、xgboost等,分类时的做法是预定一个阈值(典型为0.5),若对样本的输出大于此阈值则归为1类(即正例),那么根据样本的输出值从大到小排序(下文简称为“样本的排序”),排在最前面的即可理解为最有可能为正例的样本,而排在最后的是最不可能为正例的样本。从前往后,逐个将样本预测为正例(即把当前样本的输出值定于为阈值,小于阈值的都为反例),每次计算当前的查准率和查全率,即可得到查全率为横坐标查准率为纵坐标上的一个点,在将所有点按顺利连接后即可得到“P-R曲线”,而BEP(即Break-Event Point,平衡点)是在查全率=查准率时的取值。

P-R曲线

讨论:

从定义上看,F1值是在阈值固定时,将所有样本分类完成后,综合查全率和查准率得出的值;而BEP值则是寻求一个阈值使得查全率和查准率相同的情况下得到的(此时BEP = 查全率 = 查准率)。

也就是说BEP值和“样本的排序”紧密相关的,而和样本的预测值大小无关,同样的排序,即使将所有预测值同时乘以0.5,其BEP值也是相同的;但是对于F1值,所有样本都将预测为负例(假定阈值为0.5时),此时F1值为0。

回到题目本身,“若学习器A的F1值比学习器B高,则A的BEP值比B高”,那么若能找到两个学习器BEP值相同,而F1值不同,则题目命题就不成立了。那从上面的讨论中已经有了答案了,想象一下学习器A对样本输出值均为学习器B的两倍,两者BEP值是相同的,A的输出在(0,1)之间,而B的输出在(0,0.5)之间,此时B的 F1 值为0,A的 F1 值是在0-1之间。所以原命题不成立。

ps.个人从直觉上BEP值和F1值是没有明确关系的,在讨论过程中拿“输出值乘以0.5”为例,事实上,想象一下,一串固定排序的点(模型的输出概率值),只在0-1之间同时前进或者后退(每个点前进步长可以不一样,但是排序不变),其BEP值也不会发生变化,而F1值是不断变化的。

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

混淆矩阵

查全率:

  。

【预测为正例且真实为正例的数量】/【真实为正例的数量】

查准率:

 。

【预测为正例且真实为正例的数量】/【预测为正例的数量】

真正例率(TPR):同查全率

假正例率(FPR): 

 。

即所有反例中被预测为正例的比率。

2.5 试证明(2.22)AUC=1−lrank

答:

显然,在ROC曲线中,一条横线对应一个(或多个)负样本  , 一条竖线对应一个(或多个)正样本  , 而一条斜线则对应多个正负样本  ,且  ,即样本的预测值相同。如下图所示:

其中  对应一个(或多个预测值相同的)正例,而  对应多个预测值相同的正负例  ,显然阴影部分的宽为:

 , 

 的纵坐标为:

而  纵坐标为:

  ,

于是阴影部分面积则为 :

令  表示预测值唯一的负例集合,即原负例集合中以预测值  去重,那么AUC值为:

其中:

于是

于是

 

2.6 试述错误率和ROC曲线的联系

答:错误率是在阈值固定的情况下得出的,ROC曲线是在阈值随着样本预测值变化的情况下得出的。ROC曲线上的每一个点,都对应着一个错误率。

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

答:

首先“任意一条ROC曲线都有一条代价曲线与之对应”,显然ROC曲线上每个点(FPR,TPR)都对应着下图中一条线段,取所有线段的下届,即可得到唯一的代价曲线。

反之,代价曲线实际上是一个多边形(在有限样本下),易理解,每条边都对应代价平面上一条线段,实际上从左向右遍历每一条边,即可得到ROC曲线上从左到右每一个点。

ps. ROC曲线对应着唯一条代价曲线,但是一条代价曲线可对应着多条不同的ROC曲线,如上图中,在绿、黄、蓝三条线段交于红点时,此时去掉黄色线段代价曲线是不会发生变化的,但是ROC曲线则会少一个点。

2.8 Min-max 规范化和z-score 规范化的优缺点。

答:

Min-max 规范化优点1、计算相对简单一点。2、当新样本进来时,只有在新样本大于原最大值或者小于原最小值时,才需要重新计算规范化之后的值。缺点在于1、容易受高杠杆点和离群点影响。

z-score 规范化优点在于。1、对异常值敏感低。缺点在于1、计算更负责。2、每次新样本进来都需要重新计算规范化。

2.9 简述  检验过程

2.10 试述Friedman 检验中使用式(2.34)和(2.35)的区别。

略。没学过统计学。以后有机会再补。


推荐阅读

(点击标题可跳转阅读)

干货 | 公众号历史文章精选

我的深度学习入门路线

我的机器学习入门路线图

重磅

AI有道年度技术文章电子版PDF来啦!

扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦。 

长按扫码,申请入群

(添加人数较多,请耐心等待)

 

最新 AI 干货,我在看 

### 周志华机器学习第二章课后习题答案 #### 2.10 Friedman检验中使用式(2.34) (2.35) 的区别 Friedman检验是一种非参数统计方法,适用于多组相关样本之间的差异分析。当处理多个模型在同一测试集上的性能评估时尤为有用。 - **式(2.34)** 主要用于计算各算法排名的平均值及其方差,从而构建出一个衡量不同算法之间相对表现的标准。具体来说,该公式帮助量化每种算法在整个实验中的总体表现位置[^3]。 - **式(2.35)** 则进一步利用上述得到的信息来决定是否存在显著性的差别。通过引入临界值的概念,可以据此判断所观察到的表现差距是否超出了随机波动所能解释的程度之外。如果实际计算所得的结果超过了设定好的阈值,则说明至少有两个被比较的对象间确实存在明显不同的效果。 为了更直观理解这两个公式的应用过程以及它们各自的作用: ```python import numpy as np from scipy.stats import friedmanchisquare # 示例数据:假设有三个分类器A、B、C分别在五个数据集上进行了测试 data = [ [87, 92, 85], # 数据集1上的准确率 [89, 90, 88], [91, 93, 86], [88, 91, 87], [90, 94, 89] ] chi_statistic, p_value = friedmanchisquare(*np.array(data).T) print(f"Chi-square statistic: {chi_statistic}") print(f"P-value: {p_value}") if p_value < 0.05: print("At least two classifiers have significantly different performances.") else: print("No significant difference among classifier performances.") ``` 这段Python代码展示了如何运用SciPy库执行Friedman检验,并依据返回的卡方统计量P值做出结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红色石头Will

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值