Ответ 1
Вот более утонченная вилка сценариев Dietz: https://github.com/jluttine/tikz-bayesnet
Таким образом, я вижу графические модели, выраженные в обозначениях таблиц в научных статьях и онлайн все время (например: http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).
Есть ли быстрый и простой способ их создания? Я искал и искал, но все, что я нашел, - это такие решения, как GraphViz, которые действительно намного мощнее, чем то, что мне нужно (и, следовательно, гораздо сложнее в использовании). PGF/Tikz кажется моим лучшим выбором, но опять-таки кажется, что это перебор.
Может быть, мой лучший выбор - просто произвести их в Inkscape или укусить пулю и узнать PGF/Tikz. Они так популярны, что я думал, что будет более простой способ их изгнать, но, возможно, не... TIA.
Вот более утонченная вилка сценариев Dietz: https://github.com/jluttine/tikz-bayesnet
Посмотрите отличный Tikz-пакет от Laura Dietz, доступный от http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.zip. PDF с некоторыми примерами можно найти на http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.pdf.
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 это выглядит так. Если наличие меток под пузырьками было важно, вы могли бы сделать это с помощью пары дополнительных строк, аналогично, если конкретное размещение узлов важно, вы также можете настроить это. Фактически, если вы не укажете формат изображения, поведение по умолчанию для точки - это вывод версии входного файла с координатами для позиции каждого элемента.
Мне действительно нравится GLE (механизм компоновки графики). Это то, что использовал Кристофер Бишоп в своей книге "Распознавание образов и машинное обучение". Он имеет простой синтаксис с переменными, циклами и функциями и поддерживает уравнения TeX. Результаты выводятся как в формате pdf, так и в формате EPS, и выглядят очень красиво.
Доступны много examples, включая эту сеть Bayes от PRML.