Understand the regular K-Means algorithm

Understand and enumerate the disadvantages of K-Means Clustering

Understand the soft or fuzzy K-Means Clustering algorithm

Implement Soft K-Means Clustering in Code

Understand Hierarchical Clustering

Explain algorithmically how Hierarchical Agglomerative Clustering works

Apply Scipy's Hierarchical Clustering library to data

Understand how to read a dendrogram

Understand the different distance metrics used in clustering

Understand the difference between single linkage, complete linkage, Ward linkage, and UPGMA

Understand the Gaussian mixture model and how to use it for density estimation

Write a GMM in Python code

Explain when GMM is equivalent to K-Means Clustering

Explain the expectation-maximization algorithm

Understand how GMM overcomes some disadvantages of K-Means

Understand the Singular Covariance problem and how to fix it