learn-curve-ml.tex 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. \documentclass{standalone}
  2. \usepackage{pgfplots}
  3. \usepackage{tikz}
  4. \usetikzlibrary{positioning}
  5. \usetikzlibrary{decorations.text}
  6. \usetikzlibrary{decorations.pathmorphing}
  7. \usetikzlibrary{arrows.meta}
  8. \begin{document}
  9. \begin{tikzpicture}
  10. \tikzstyle{training}=[red, thick,samples=200,dashed]
  11. \tikzstyle{testing}=[green, thick,samples=200]
  12. \tikzstyle{arrow}=[<->, Latex-Latex, thick]
  13. \begin{axis}[
  14. legend pos=north east,
  15. axis x line=middle,
  16. axis y line=middle,
  17. grid = major,
  18. width=14cm,
  19. height=8cm,
  20. grid style={dashed, white}, % gray!30
  21. xmin=0, % start the diagram at this x-coordinate
  22. xmax= 104, % end the diagram at this x-coordinate
  23. ymin= 0, % start the diagram at this y-coordinate
  24. ymax= 0.79, % end the diagram at this y-coordinate
  25. axis background/.style={fill=white},
  26. xlabel=Training samples,
  27. ylabel=Error,
  28. tick align=outside,
  29. minor tick num=-3,
  30. tension=0.08]
  31. \addplot[domain=1:100, testing] {1/(x+2)+0.4};
  32. \addplot[domain=1:100, training] {0.4-(1/(x+2))};
  33. % \draw[dashed,thick] (axis cs:0,0.4) -- (axis cs:110,0.4);
  34. \draw[dashed,thick] (axis cs:0,0.2) -- (axis cs:110,0.2);
  35. \path[arrow] (axis cs:80,0.2) edge node[right, midway] {avoidable bias} (axis cs:80,0.3878);
  36. \path[arrow] (axis cs:20,0.3545) edge node[left, midway] {variance} (axis cs:20,0.4454);
  37. \draw[decoration={text along path, text={human-level error}, text align={center}}, decorate] (axis cs:20,0.21) -- (axis cs:50,0.21);
  38. \addlegendentry{Validation}
  39. \addlegendentry{Training}
  40. \end{axis}
  41. \end{tikzpicture}
  42. \end{document}