所以我看到在研究论文和在线一直以平板符号表示的图形模型(例如:http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf)。
有没有快速简便的方法来制作这些?我进行了搜索和搜索,但我发现的只有GraphViz这样的解决方案,它实际上比我需要的更强大(因此更难以使用)。 PGF / Tikz似乎是我最好的选择,但再次看起来有点矫枉过正。
也许我最好的选择是在Inkscape中制作它们,或者咬紧牙关学习PGF / Tikz。他们是如此受欢迎,我认为会有一种更简单的方式来推销它们,但也许不是...... TIA。
答案 0 :(得分:10)
这是Dietz脚本的更精致的分支:https://github.com/jluttine/tikz-bayesnet
答案 1 :(得分:9)
查看Laura Dietz提供的优秀Tikz包装,可从http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.zip获得。 http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.pdf提供了带有一些示例的pdf。
答案 2 :(得分:9)
GraphViz真的不是那么难学。对于这些类型的图表,基本语言非常简单。我花了一些时间来复制(或多或少)来自pdf的第一个例子,并且它的好处在于,由于它的简单性,从其他数据源程序生成图表非常容易。
Digraph fig1 {
rankdir = LR; //order things from left to right
//define alpha and beta as existing
α [shape=circle];
β [shape=circle];
//not strictly nescessary but helps if you want to
//assign them specific shapes or colours
subgraph cluster_M //names beginning with "cluster" get a box drawn, an odd hack
{
label = "M"
θ [shape=circle];
subgraph cluster_N
{
label = "N"
z [shape=circle];
w [shape=circle, style=filled]
z->w; //quite literally z points at w
}
θ -> z;
}
α -> θ;
β -> w;
}
编译用
dot -Tpng input.txt -o graph.png
看起来像这样。如果在气泡下面有标签很重要,你可以用几条额外的线来做到这一点,类似地,如果节点的特定位置很重要,你也可以调整它。实际上,如果你没有指定图像格式,dot的默认行为是输出一个输入文件的版本,其坐标是每个元素的位置。
答案 3 :(得分:4)
我非常喜欢GLE(图形布局引擎)。这就是克里斯托弗·毕晓普在他的书“模式识别和机器学习”中使用的内容。它具有包含变量,循环和函数的简单语法,并且它支持TeX方程。结果输出为pdf或eps,看起来非常好。
有很多examples可用,包括this Bayes net from PRML。
答案 4 :(得分:0)
作为对其他答案的补充:我使用的“低技能”方法是在 Google 幻灯片中绘制它们,并添加一些用于生成公式的插件。