周志华《机器学习》第一章读书笔记以及课后习题答案

读书笔记

1.根据训练数据是否拥有标记信息,学习任务可大致分两类

学习任务代表
监督学习分类,回归
无监督学习聚类

2.学得模型适用于新样本的能力,称为“泛化”能力。

3.假设空间和版本空间
例题的假设空间由3部分组成
①色泽,根蒂,敲声分别有3,3,3种取值
②色泽,根蒂,敲声取什么值都合适,我们使用通配符“*”来表示,所以取值分别用1,1,1表示
③还有一种极端情况,有可能“ 好瓜 ”这个概念根本就不成立,世界上压根就没有“好瓜”这种东西,我们用Ø表示这个假设
所以假设空间大小规模
(3+1)×(3+1)×(3+1)+1=65
现实问题中我们常面临很大的假设空间,但学习过程是基于有限样本训练集进行的,因此有可能有多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为“版本空间(version space)”。

4.机器学习算法在学习过程中对于某种类型假设的偏好,称为“归纳偏好”(inductive bias)或简称为“偏好”

5.奥斯姆剃刀(Occam‘s razor)是一种常用的、自然科学研究中最基本的原则,则“若有多个假设与观察一致,则选最简单的那个”

6.没有免费午餐定理(NFL定理)

书上证明较简单,建议自己手动推一下。
浅谈NFL没有免费的午餐定理

7.机器学习领域重要会议和期刊
最重要的国际学术会议是国际机器学习会议(ICML)、国际神经信息处理系统(NIPS)和国际学习理论会议(COLT),重要的区域性会议主要有欧洲机器学习会议(ECML)和亚洲机器学习会议(ACML);最重要的国际学术期刊是Journal of Machine Learning Research和Machine Learning等等

课后习题答案

如有不对的地方,请不吝赐教
1.1与训练集一致的“假设集合”我们称之为版本空间
版本空间的求法为便利假设空间,不断的删除与正例不一致的假设、和(或)与反例一致的假设(即与表不吻合的假设)数据集
若只包含样例1和4,则色泽,根蒂,敲声分别有两种取值,则空间大小的规模为(2+1)×(2+1)×(2+1)+1=28
遍历所有的假设空间,根据以上的规则,得到版本空间为7个

1.2参考《机器学习》周志华第一章课后习题

1.3既然数据中包含噪声,最直接的思路就是首先去除噪声。去噪方法:若存在两个样例属性取值都相同,标记却不同,则只保留标记为正例的样例(或标记为反例的样例,也可以考虑更加复杂的筛选方法,比如统计相似样例的标记),在此基础上求出版本空间。
也可以考虑其他方法:
1.在求版本空间时,只除去与反例不一致的假设。
2.求版本空间时,只留下包含了所有正例的假设。

1.4证明
在这里插入图片描述

1.5对搜索进行优化,对垃圾网站进行识别等
参考 机器学习能在互联网搜索的哪些环节起什么作用

很高兴为您解答这个问题!本次我们将学习如何用 Python 实现《机器学习周志华教授第十四章中的概率图模型习题。在这里,我们将使用 Python 的 pgmpy 库来构建和分析概率图模型。 首先,我们需要安装 pgmpy。可以使用 pip 安装: ```python pip install pgmpy ``` 安装完成后,我们就可以开始实现习题了。 #### 习题 14.1 考虑一个三元组 $(X, Y, Z)$,其中 $X$ 是二元随机变量,$Y, Z$ 是一元随机变量,试构造一个无向图结构,使其成为正态分布的一个合法图模型。 我们可以使用 pgmpy 来创建这个无向图模型。代码如下: ```python from pgmpy.models import MarkovModel # 创建一个空的无向图模型 model = MarkovModel() # 添加变量节点 model.add_nodes_from(['X', 'Y', 'Z']) # 添加边 model.add_edges_from([('X', 'Y'), ('X', 'Z')]) # 将模型转换成正态分布模型 from pgmpy.factors.continuous import ContinuousFactor from pgmpy.inference import Inference # 定义正态分布的 mean 和 covariance mean = [0, 0, 0] covariance = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] # 创建正态分布因子 factor = ContinuousFactor(['X', 'Y', 'Z'], mean, covariance) # 将因子添加到模型中 model.add_factors(factor) # 执行因子分解 inference = Inference(model) factors = inference.factors() ``` 在上面的代码中,我们首先创建了一个空的无向图模型,然后添加了三个变量节点 $X, Y, Z$ 和两条边 $(X, Y), (X, Z)$。接着,我们使用 `pgmpy.factors.continuous.ContinuousFactor` 来定义正态分布的 mean 和 covariance,并将其添加到模型中。最后,我们使用 `pgmpy.inference.Inference` 来执行因子分解,得到了模型中的所有因子。 #### 习题 14.2 考虑一个四元组 $(X_1, X_2, X_3, X_4)$,它们之间的关系如下图所示。试构造这个有向图结构的贝叶斯网模型。 ![image.png](attachment:image.png) 我们可以使用 pgmpy 来创建这个有向图模型。代码如下: ```python from pgmpy.models import BayesianModel # 创建一个空的有向图模型 model = BayesianModel() # 添加变量节点 model.add_nodes_from(['X1', 'X2', 'X3', 'X4']) # 添加边 model.add_edges_from([('X2', 'X1'), ('X3', 'X1'), ('X3', 'X2'), ('X4', 'X2')]) # 打印模型结构 print(model.edges()) ``` 在上面的代码中,我们首先创建了一个空的有向图模型,然后添加了四个变量节点 $X_1, X_2, X_3, X_4$ 和四条边 $(X_2, X_1), (X_3, X_1), (X_3, X_2), (X_4, X_2)$。最后,我们打印出了模型的边结构。 #### 习题 14.3 考虑一个五元组 $(X_1, X_2, X_3, X_4, X_5)$,它们之间的关系如下图所示。试构造这个有向图结构的贝叶斯网模型。 ![image-2.png](attachment:image-2.png) 我们可以使用 pgmpy 来创建这个有向图模型。代码如下: ```python from pgmpy.models import BayesianModel # 创建一个空的有向图模型 model = BayesianModel() # 添加变量节点 model.add_nodes_from(['X1', 'X2', 'X3', 'X4', 'X5']) # 添加边 model.add_edges_from([('X2', 'X1'), ('X3', 'X1'), ('X4', 'X2'), ('X5', 'X2'), ('X5', 'X3')]) # 打印模型结构 print(model.edges()) ``` 在上面的代码中,我们首先创建了一个空的有向图模型,然后添加了五个变量节点 $X_1, X_2, X_3, X_4, X_5$ 和五条边 $(X_2, X_1), (X_3, X_1), (X_4, X_2), (X_5, X_2), (X_5, X_3)$。最后,我们打印出了模型的边结构。 #### 习题 14.4 考虑一个六元组 $(X_1, X_2, X_3, X_4, X_5, X_6)$,它们之间的关系如下图所示。试构造这个有向图结构的贝叶斯网模型。 ![image-3.png](attachment:image-3.png) 我们可以使用 pgmpy 来创建这个有向图模型。代码如下: ```python from pgmpy.models import BayesianModel # 创建一个空的有向图模型 model = BayesianModel() # 添加变量节点 model.add_nodes_from(['X1', 'X2', 'X3', 'X4', 'X5', 'X6']) # 添加边 model.add_edges_from([('X2', 'X1'), ('X3', 'X1'), ('X4', 'X2'), ('X5', 'X3'), ('X6', 'X4'), ('X6', 'X5')]) # 打印模型结构 print(model.edges()) ``` 在上面的代码中,我们首先创建了一个空的有向图模型,然后添加了六个变量节点 $X_1, X_2, X_3, X_4, X_5, X_6$ 和六条边 $(X_2, X_1), (X_3, X_1), (X_4, X_2), (X_5, X_3), (X_6, X_4), (X_6, X_5)$。最后,我们打印出了模型的边结构。 #### 习题 14.5 考虑一个二元组 $(X, Y)$,其中 $X$ 是一元随机变量,$Y$ 是二元随机变量,试构造一个有向图结构,使其成为正态分布的一个合法图模型。 我们可以使用 pgmpy 来创建这个有向图模型。代码如下: ```python from pgmpy.models import BayesianModel # 创建一个空的有向图模型 model = BayesianModel() # 添加变量节点 model.add_nodes_from(['X', 'Y1', 'Y2']) # 添加边 model.add_edges_from([('X', 'Y1'), ('X', 'Y2')]) # 将模型转换成正态分布模型 from pgmpy.factors.continuous import ContinuousFactor from pgmpy.inference import Inference # 定义正态分布的 mean 和 covariance mean = [0, 0, 0] covariance = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] # 创建正态分布因子 factor = ContinuousFactor(['X', 'Y1', 'Y2'], mean, covariance) # 将因子添加到模型中 model.add_factors(factor) # 执行因子分解 inference = Inference(model) factors = inference.factors() ``` 在上面的代码中,我们首先创建了一个空的有向图模型,然后添加了三个变量节点 $X, Y_1, Y_2$ 和两条边 $(X, Y_1), (X, Y_2)$。接着,我们使用 `pgmpy.factors.continuous.ContinuousFactor` 来定义正态分布的 mean 和 covariance,并将其添加到模型中。最后,我们使用 `pgmpy.inference.Inference` 来执行因子分解,得到了模型中的所有因子。 以上就是本次的答案,希望对您有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值