机器学习第二章--python基础

python基础——数据类型

 

组合数据类型

1.列表

2.元组

 

 3.字典

 4.集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本章主要介绍概率图模型,包括贝叶斯网络和马尔可夫随机场,并给出了两者的 python 实现。 一、贝叶斯网络 贝叶斯网络是一种有向无环图,它表示变量之间的依赖关系。在贝叶斯网络中,每个节点表示一个变量,每条有向边表示一个依赖关系。节点的条件概率分布可以通过贝叶斯公式计算得到。 在 python 中,我们可以使用 NetworkX 库来创建贝叶斯网络。例如,下面的代码创建了一个简单的贝叶斯网络,并计算了两个节点的条件概率分布: ```python import networkx as nx import matplotlib.pyplot as plt import numpy as np # 创建有向图 G = nx.DiGraph() # 添加节点 G.add_node('a', pos=(0, 0)) G.add_node('b', pos=(1, 1)) G.add_node('c', pos=(1, -1)) G.add_node('d', pos=(2, 0)) # 添加边 G.add_edge('a', 'b') G.add_edge('a', 'c') G.add_edge('b', 'd') G.add_edge('c', 'd') # 绘制图形 pos = nx.get_node_attributes(G, 'pos') nx.draw_networkx(G, pos) plt.show() # 计算节点的条件概率分布 cpd_a = np.array([0.6, 0.4]) cpd_b = np.array([[0.7, 0.3], [0.2, 0.8]]) cpd_c = np.array([[0.5, 0.5], [0.1, 0.9]]) cpd_d = np.array([[0.9, 0.1, 0.3, 0.7], [0.4, 0.6, 0.8, 0.2]]) ``` 二、马尔可夫随机场 马尔可夫随机场是一个无向图,它表示变量之间的关系。在马尔可夫随机场中,每个节点表示一个变量,每条边表示变量之间的关系。节点的联合概率分布可以通过势函数计算得到。 在 python 中,我们可以使用 NetworkX 库来创建马尔可夫随机场。例如,下面的代码创建了一个简单的马尔可夫随机场,并计算了两个节点的联合概率分布: ```python import networkx as nx import matplotlib.pyplot as plt import numpy as np # 创建无向图 G = nx.Graph() # 添加节点 G.add_node('a', pos=(0, 0)) G.add_node('b', pos=(1, 1)) G.add_node('c', pos=(1, -1)) G.add_node('d', pos=(2, 0)) # 添加边 G.add_edge('a', 'b') G.add_edge('a', 'c') G.add_edge('b', 'd') G.add_edge('c', 'd') # 绘制图形 pos = nx.get_node_attributes(G, 'pos') nx.draw_networkx(G, pos) plt.show() # 计算节点的联合概率分布 pot_a = np.array([0.6, 0.4]) pot_b = np.array([[1.0, 0.2], [0.2, 1.0]]) pot_c = np.array([[1.0, 0.2], [0.2, 1.0]]) pot_d = np.array([[1.0, 0.5], [0.5, 1.0]]) ``` 以上就是本章的 python 实现。通过学习本章,我们可以了解到概率图模型的基本概念和 python 实现方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值