A version using tikz-cd
.
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric}
\begin{document}
\[\tikzset{loop below/.style={out=-60,in=-120,loop},
loop left/.style={out=210,in=150,loop},
loop right/.style={out=30,in=-30,loop},
loop above/.style={out=60,in=120,loop}}
\begin{tikzcd}[cells={nodes={shape=diamond,draw}}]
0 \ar[r,bend left] \ar[loop left,"1" ] &
1 \ar[r,bend left,"1/4"] \ar[l,bend left,"1/4"] \ar[loop below,"1/2"] &
2 \ar[r,bend left] \ar[l,bend left] \ar[loop below] &
3 \ar[r,bend left] \ar[l,bend left] \ar[loop below] &
4 \ar[l,bend left] \ar[loop right]
\end{tikzcd}\]
\end{document}

And this is similar to Joule V's answer but everything in one loop and label placement with auto
.
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\edef\lstLoop{"1","1/2","","","1"}
\edef\lstAbove{"","","1/4","",""}
\edef\lstBelow{"","1/4","","",""}
\foreach \X [remember=\X as \LastX] in {0,...,4}
{\node[diamond,draw] (d\X) at (2*\X,0) {\X};
\ifnum\X=0
\draw[-latex] (d\X) to[out=150,in=210,loop]
node[auto,swap]{\pgfmathparse{{\lstLoop}[\X]}$\pgfmathresult$} (d\X) ;
\else
\draw[-latex] (d\LastX) to[bend left]
node[auto]{\pgfmathparse{{\lstAbove}[\X]}$\pgfmathresult$} (d\X);
\draw[-latex] (d\X) to[bend left]
node[auto]{\pgfmathparse{{\lstBelow}[\X]}$\pgfmathresult$}
(d\LastX);
\ifnum\X<4
\draw[-latex] (d\X) to[out=-60,in=-120,loop]
node[auto]{\pgfmathparse{{\lstLoop}[\X]}$\pgfmathresult$} (d\X);
\else
\draw[-latex] (d\X) to[out=30,in=-30,loop]
node[auto]{\pgfmathparse{{\lstLoop}[\X]}$\pgfmathresult$} (d\X) ;
\fi
\fi
}
\end{tikzpicture}
\end{document}
