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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 周志华机器学习课后习题解析【第二章】

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


答:排列组合问题。


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

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

 image.png

种。


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


答:

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

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


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


答:

说一下自己理解吧

先看看F1值的定义,

image.png

image.png

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

再看看BEP值

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

image.png

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)之间的联系。


image.png


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


答:

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


image.png

image.png

image.png


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


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


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


答:

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

image.png

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


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


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


答:

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

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


2.9 简述 image.png检验过程


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

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

相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
R语言中的机器学习库:caret与mlr的深度解析
【9月更文挑战第2天】Caret和mlr是R语言中两个非常重要的机器学习库,它们在数据预处理、模型构建、调优和评估等方面提供了丰富的功能。Caret以其易用性和集成性著称,适合初学者和快速原型开发;而mlr则以其全面性和可扩展性见长,适合处理复杂的机器学习项目。在实际应用中,用户可以根据具体需求和项目特点选择合适的库进行开发。无论是学术研究、商业智能还是教育场景,这两个库都能为数据科学家和机器学习爱好者提供强大的支持。
|
1月前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
74 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
1月前
|
机器学习/深度学习 算法 Python
深度解析机器学习中过拟合与欠拟合现象:理解模型偏差背后的原因及其解决方案,附带Python示例代码助你轻松掌握平衡技巧
【10月更文挑战第10天】机器学习模型旨在从数据中学习规律并预测新数据。训练过程中常遇过拟合和欠拟合问题。过拟合指模型在训练集上表现优异但泛化能力差,欠拟合则指模型未能充分学习数据规律,两者均影响模型效果。解决方法包括正则化、增加训练数据和特征选择等。示例代码展示了如何使用Python和Scikit-learn进行线性回归建模,并观察不同情况下的表现。
314 3
|
1月前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
67 2
|
2月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
309 1
|
3月前
|
图形学 机器学习/深度学习 人工智能
颠覆传统游戏开发,解锁未来娱乐新纪元:深度解析如何运用Unity引擎结合机器学习技术,打造具备自我进化能力的智能游戏角色,彻底改变你的游戏体验——从基础设置到高级应用全面指南
【8月更文挑战第31天】本文探讨了如何在Unity中利用机器学习增强游戏智能。作为领先的游戏开发引擎,Unity通过ML-Agents Toolkit等工具支持AI代理的强化学习训练,使游戏角色能自主学习完成任务。文章提供了一个迷宫游戏示例及其C#脚本,展示了环境观察、动作响应及奖励机制的设计,并介绍了如何设置训练流程。此外,还提到了Unity与其他机器学习框架(如TensorFlow和PyTorch)的集成,以实现更复杂的游戏玩法。通过这些技术,游戏的智能化程度得以显著提升,为玩家带来更丰富的体验。
64 1
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
84 0
|
6月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
239 14
|
6月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
119 1
|
6月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)

热门文章

最新文章

下一篇
无影云桌面