Markov Models: Understanding Markov Models and Unsupervised Machine Learning in Python with Real-World Applications