连接树与信念传播算法
junctiontree的Python项目详细描述
#连接树
使用连接树算法实现离散因子图推理
要求:
----
*numpy(>;=1.12)
因子图:
----
在
因素中。(一个键对应一个变量。)
````[keys1,…,keysn]n个因子的列表```
由于因子列表的长度是
作为因子值的表示
````[values1,…,valuesn]```
e,size是表示变量大小的整数。它与数值数组中相应轴的长度
generic trees(递归定义):
---------------------------
````
[索引、键、子树1,…,子树]
```
```
树结构(由节点列表中的节点索引组成):
[
索引,
(
separator1_索引,
子树1
),
…,
(
separatorn_索引,
子树
)
]
节点列表(元素是定义节点的键:
[节点0键,节点1键,…,节点n键]
````
(连接)树中的电位:
--------
树图中的节点id将
映射到此数据结构中的数组,以便在执行阶段获得数值
数组。在编译阶段不需要数字数组
。
\将传播视为bp
导入交叉点。交叉点视为jt
将numpy导入为np
关键尺寸={
"多云":2,
"洒水":2,
"雨":2,
"湿草":2
}
因子=[
["多云"],
["多云","洒水车"],
["多云","雨"],
["雨","洒水车","湿草地"]
值=[
np.数组([0.5,0.5]),
np.数组(
[
[0.5,0.5],
[0.9,0.1]
]
],
np.数组(
[
[0.8,0.2],
[0.2,0.8]
]
),
np.数组(
[
[
[1,0],
[0.1,0.9]
],
[
[0.1,0.9],
[0.01,0.99]
]
]
]
]
tree=jt.创建连接树(因子,关键大小)
````
初始团电位不一致。通过在连接树上进行全局传播,使电位保持一致。在观察连接树中变量的数据之后,可以使团势保持一致
```
#然后,同样的值:
cond_values=values.copy()
从一组一致的团势集合中,可以计算出感兴趣变量的边际值
````
pr(洒水车湿草地=1)
marginal=np.sum(prop_值[1],轴=0)
标准化值:
范数边缘=边缘/np.和(边缘)
````
参考文献:
s.m.aji和r.j.mceliece,《信息论ieee汇刊》,第46卷,第2期,第325-343页,2000年3月。doi:10.1109/18.825794
cecil huang,adnan darwiche,《信念网络中的推理:程序指南》,国际近似推理杂志,第15卷,第3期,1996年,第225-263页,issn 0888-613x,http://dx.doi.org/10.1016/s0888-613x(96)00069-2.
使用连接树算法实现离散因子图推理
要求:
----
*numpy(>;=1.12)
因子图:
----
在
因素中。(一个键对应一个变量。)
````[keys1,…,keysn]n个因子的列表```
由于因子列表的长度是
作为因子值的表示
````[values1,…,valuesn]```
e,size是表示变量大小的整数。它与数值数组中相应轴的长度
generic trees(递归定义):
---------------------------
````
[索引、键、子树1,…,子树]
```
```
树结构(由节点列表中的节点索引组成):
[
索引,
(
separator1_索引,
子树1
),
…,
(
separatorn_索引,
子树
)
]
节点列表(元素是定义节点的键:
[节点0键,节点1键,…,节点n键]
(连接)树中的电位:
--------
树图中的节点id将
映射到此数据结构中的数组,以便在执行阶段获得数值
数组。在编译阶段不需要数字数组
。
\将传播视为bp
导入交叉点。交叉点视为jt
将numpy导入为np
关键尺寸={
"多云":2,
"洒水":2,
"雨":2,
"湿草":2
}
因子=[
["多云"],
["多云","洒水车"],
["多云","雨"],
["雨","洒水车","湿草地"]
值=[
np.数组([0.5,0.5]),
np.数组(
[
[0.5,0.5],
[0.9,0.1]
]
],
np.数组(
[
[0.8,0.2],
[0.2,0.8]
]
),
np.数组(
[
[
[1,0],
[0.1,0.9]
],
[
[0.1,0.9],
[0.01,0.99]
]
]
]
]
tree=jt.创建连接树(因子,关键大小)
````
初始团电位不一致。通过在连接树上进行全局传播,使电位保持一致。在观察连接树中变量的数据之后,可以使团势保持一致
```
#然后,同样的值:
cond_values=values.copy()
从一组一致的团势集合中,可以计算出感兴趣变量的边际值
````
pr(洒水车湿草地=1)
marginal=np.sum(prop_值[1],轴=0)
标准化值:
范数边缘=边缘/np.和(边缘)
````
参考文献:
s.m.aji和r.j.mceliece,《信息论ieee汇刊》,第46卷,第2期,第325-343页,2000年3月。doi:10.1109/18.825794
cecil huang,adnan darwiche,《信念网络中的推理:程序指南》,国际近似推理杂志,第15卷,第3期,1996年,第225-263页,issn 0888-613x,http://dx.doi.org/10.1016/s0888-613x(96)00069-2.