Skip to content

Commit c394a00

Browse files
committed
final version
1 parent ef886c3 commit c394a00

File tree

2 files changed

+32
-12
lines changed

2 files changed

+32
-12
lines changed

LearningWithExpertKnowledge/readme.md

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,39 @@
1-
# expert.py
2-
专家部分
3-
# graph.py
4-
图部分
5-
# estimator.py
6-
算法主体
7-
# run/与data/
8-
放置运行脚本与数据
1+
# 融合专家知识的贝叶斯网络结构学习算法
2+
score-based learning:
3+
criterion:BIC with expert score,greedy hill climb.
4+
本算法可以融合专家知识矩阵来提高贝叶斯网络结构学习的精度,提供了BIC评分的改进形式
5+
算法由三个class组成,分别为estimator,expert,DAG组成。后期可以对estimator.score_function以及expert进行重写,对该算法进行改进。
96

10-
expert
7+
expert专家部分
118
 |----think
12-
graph
9+
graph图部分
1310
 |----get_parents
1411
 |----save_to_png
15-
estimator
12+
estimator算法主体
1613
 |----run
1714
 |----add_weight_to_edges
1815
 |----centrality_of_nodes
16+
run/与data/
17+
 |----放置运行脚本与数据
18+
results/
19+
 |----放置网络结构结果 文件格式为xlsx,可以直接放置在Cytoscape里进行可视化 https://cytoscape.org/
1920

21+
## Example with asian dataset
22+
```python
23+
from LearningWithExpertKnowledge.estimator import *
24+
from LearningWithExpertKnowledge.expert import *
25+
if __name__ == '__main__':
26+
asian_data = pd.read_csv(r"../data/asian.csv", index_col=0)
27+
expert_data = pd.read_csv(r"../data/asian_expert.csv", index_col=0)
28+
huang = ExpertKnowledge(data=expert_data) # 实例化专家huang
29+
est = Estimator(data=asian_data, expert=huang, k=100000) # 将数据,专家,超参数传入estimator
30+
est.run() # 运行估计器,每次迭代结果可以在log.txt中实时查看
31+
est.DAG.save_to_png(weight=False) # 保存DAG为png文件
32+
print(est.DAG.edges) # 打印结果
33+
```
2034

21-
参考文献:高晓光, 叶思懋, 邸若海, 等. 基于融合先验方法的贝叶斯网络结构学习[J]. 系统工程与电子技术, 2018, 40(4): 790-796.
35+
36+
37+
38+
## Reference:
39+
高晓光, 叶思懋, 邸若海, 等. 基于融合先验方法的贝叶斯网络结构学习[J]. 系统工程与电子技术, 2018, 40(4): 790-796.

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
cycler==0.10.0
22
decorator==4.4.2
3+
et-xmlfile==1.1.0
34
kiwisolver==1.3.1
45
matplotlib==3.4.1
56
networkx==2.5.1
67
numpy==1.20.2
8+
openpyxl==3.0.7
79
pandas==1.1.5
810
Pillow==8.2.0
911
pyparsing==2.4.7

0 commit comments

Comments
 (0)