Ich versuche folgende Grafik nachzubilden:
Ich weiß, dass diese Frage schon einmal gestellt wurdeHierDie Lösungen erfordern jedoch eine Kompilierung mit lualatex
.
Folgendes habe ich bisher:
Ich versuche, die Grafik durch Hinzufügen der Titel /Achsen Low Variance
, und zu vervollständigen.High Variance
Low Bias
High Bias
Ich versuche auch, den Abstand zwischen den subfigure
Diagrammen zu vergrößern. Der vertikale Abstand scheint in Ordnung zu sein, aber der horizontale Abstand ist zu eng.
Endlich:
Ich möchte dem Plot zwei zusätzliche Tags ( overfitting
und underfitting
) hinzufügen, wie in der folgenden Abbildung.
(Außerdem: Wenn ich einen schwarzen Rand um die Punkte hinzufügen könnte, wäre das großartig, und wenn ich die Farben dunkler machen könnte wie in der ersten Abbildung. Ich habe einige Möglichkeiten ausprobiert, um die Farben dunkler zu machen, aber ohne Erfolg.)
Code:
\documentclass{article}
\usepackage{tikz}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,.1),(.1,.1),(.1,.2),(-.1,0),(-.2,.1),(-.1,-.1),(-.2,-.3),(-.3,-.1),(.3,-.1),(0,-.1),(-.1,0),(-.2,-.1),(-.2,-.2)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,.8),(.2,.9),(.8,.1),(-.1,.7),(-.1,-.4),(-.3,-.1),(-.4,-.9),(.2,-.9),(.5,.5),(-.5,.8),(-.7,-.8),(-.2,-.3),(-.5,0)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\bigskip
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.2),(.1,1.4),(-.1,1.3),(-.2,1.2),(-.1,1.3),(-.1,1.4),(-.2,1.5),(0,1.3),(.3,1.4),(0,1.6),(.1,1.6),(-.2,1.5),(.2,1.7)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue!50!white,1.2 cm/white,0.4 cm/red!50!white}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.3),(-1.3,0.4),(-1.4,2.0),(-1.2,1.0),(-1.0,1.6),(-.5,1.7),(-.2,1.5),(-.9,1.9),(.1,1.7),(-.9,1.6),(-.3,1.8),(-.6,1.7),(-.9,1.9)}{%
\draw[fill=blue] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\caption{}
\label{fig:biasVarianceTradeOff}
\end{figure}
\end{document}
Antwort1
Eine mögliche Lösung ohne große Änderungen an Ihrem Ansatz:
MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,above,text height=1cm,yshift=3cm]{Low\\Variance} node[align=center,left,text width=1cm,xshift=-3cm]{Low\\Bias};}
\foreach \coords in {(0,.1),(.1,.1),(.1,.2),(-.1,0),(-.2,.1),(-.1,-.1),(-.2,-.3),(-.3,-.1),(.3,-.1),(0,-.1),(-.1,0),(-.2,-.1),(-.2,-.2)}{%
\draw[fill=green] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,above,text height=1cm,yshift=3cm]{High\\Variance};}
\foreach \coords in {(0,.8),(.2,.9),(.8,.1),(-.1,.7),(-.1,-.4),(-.3,-.1),(-.4,-.9),(.2,-.9),(.5,.5),(-.5,.8),(-.7,-.8),(-.2,-.3),(-.5,0)}{%
\draw[fill=green] \coords circle (.6mm);}
\node[red] (uf1) at (2.5,-2.5) {Overfitting};
\coordinate (uf2) at (.5,-0.7);
\draw [-latex,red,line width= 1.5pt] (uf1) -- (uf2);
\end{tikzpicture}
\end{subfigure}
\par\bigskip
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) node[align=center,left,text width=1cm,xshift=-3cm]{High\\Bias};}
\foreach \coords in {(0,1.2),(.1,1.4),(-.1,1.3),(-.2,1.2),(-.1,1.3),(-.1,1.4),(-.2,1.5),(0,1.3),(.3,1.4),(0,1.6),(.1,1.6),(-.2,1.5),(.2,1.7)}{%
\draw[fill=green] \coords circle (.6mm);}
\node[red] (uf1) at (-2.5,2.5) {Underfitting};
\coordinate (uf2) at (-.25,1.5);
\draw [-latex,red,line width= 1.5pt] (uf1) -- (uf2);
\node[red] (tr1) at (-2.5,-2.5) {Truth};
\coordinate (tr2) at (-0.3,-0.3);
\draw [-latex,red,line width= 1.5pt] (tr1) -- (tr2);
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}{0.40\textwidth}
\begin{tikzpicture}
\foreach \r/\col in {2.8 cm/white,2 cm/blue,1.2 cm/white,0.4 cm/red}{%
\path[draw,fill=\col] (0,0) circle (\r) ;}
\foreach \coords in {(0,1.3),(-1.3,0.4),(-1.4,2.0),(-1.2,1.0),(-1.0,1.6),(-.5,1.7),(-.2,1.5),(-.9,1.9),(.1,1.7),(-.9,1.6),(-.3,1.8),(-.6,1.7),(-.9,1.9)}{%
\draw[fill=green] \coords circle (.6mm);}
\end{tikzpicture}
\end{subfigure}
\caption{Graphical illustration of bias and variance}
\label{fig:biasVarianceTradeOff}
\end{figure}
\end{document}