베이지안 네트워크를 어떻게 만들 수 있나요?

베이지안 네트워크를 어떻게 만들 수 있나요?

다음과 같이 각 노드 옆에 노드, 가장자리 및 진리표가 있는 베이지안 네트워크를 구축하려고 합니다.이것:

여기에 이미지 설명을 입력하세요

그런 것을 만들려면 어떤 도구를 사용할 수 있나요? 아마도 TikZ 라이브러리의 일부 패키지일까요?

답변1

여기에 하나의 가능성이 있습니다.TikZ; 표 형식의 자료는 s 안에 배치되었습니다 \node. 라이브러리 shapes는 타원형 노드를 갖는 데 사용되었습니다.

그만큼dcolumn패키지는 소수 구분 기호에 정렬된 열을 가져오는 데 사용되었습니다. 그만큼booktabs패키지를 사용하여 테이블을 작성했습니다(특히 수직선이 그려지지 않았습니다).

\documentclass{article}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes,arrows}

\newcolumntype{M}[1]{D{.}{.}{1.#1}}

\begin{document}

\begin{tikzpicture}[
  node distance=1cm and 0cm,
  mynode/.style={draw,ellipse,text width=2cm,align=center}
]
\node[mynode] (sp) {Sprinkler};
\node[mynode,below right=of sp] (gw) {Grass wet};
\node[mynode,above right=of gw] (ra) {Rain};
\path (ra) edge[-latex] (sp)
(sp) edge[-latex] (gw) 
(gw) edge[latex-] (ra);
\node[left=0.5cm of sp]
{
\begin{tabular}{cM{2}M{2}}
\toprule
& \multicolumn{2}{c}{Sprinkler} \\
Rain & \multicolumn{1}{c}{T} & \multicolumn{1}{c}{F} \\
\cmidrule(r){1-1}\cmidrule(l){2-3}
F & 0.4 & 0.6 \\
T & 0.01 & 0.99 \\
\bottomrule
\end{tabular}
};
\node[right=0.5cm of ra]
{
\begin{tabular}{M{1}M{1}}
\toprule
\multicolumn{2}{c}{Sprinkler} \\
\multicolumn{1}{c}{T} & \multicolumn{1}{c}{F} \\
\cmidrule{1-2}
0.2 & 0.8 \\
\bottomrule
\end{tabular}
};
\node[below=0.5cm of gw]
{
\begin{tabular}{ccM{2}M{2}}
\toprule
& & \multicolumn{2}{c}{Grass wet} \\
\multicolumn{2}{l}{Sprinkler rain} & \multicolumn{1}{c}{T} & \multicolumn{1}{c}{F} \\
\cmidrule(r){1-2}\cmidrule(l){3-4}
F & F & 0.4 & 0.6 \\
F & T & 0.01 & 0.99 \\
T & F & 0.01 & 0.99 \\
T & T & 0.01 & 0.99 \\
\bottomrule
\end{tabular}
};

\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보