The following repository is a collection of various Machine Learning techniques, including supervised and unsupervised learning. This coursework was designed to provide practical experience of using these algorithms using Python. Beyond the practical experience, it was also designed to aid one's understanding of the theory behind such algorithms.