Cluster Analysis and Unsupervised Machine Learning in Python (Udemy.com)
Data science techniques for pattern recognition, data mining, k-means clustering, and hierarchical clustering, and KDE.
Created by: Lazy Programmer Team
Last updated August 2026
Our take
Based on the ratings of 5,236 students, a sample of their written reviews and the syllabus, as the course stood in August 2026. No course pays to be reviewed.
This is a focused unsupervised learning course of about eight hours. The syllabus shows 57 lectures in nine sections: k-means gets the biggest share, then hierarchical clustering with Scipy and dendrograms, then Gaussian mixture models and expectation-maximization. The pitch is building the algorithms yourself instead of calling a library. Despite the beginner label, the requirements list Python, NumPy, probability and matrix arithmetic, and reviewers back that up. Several later sections are FAQ extras on setup, Python basics and study habits, so the core material is closer to five and a half hours.
Students rate it 4.7 across 5,236 reviews, and about 92 percent give four or five stars. Praise goes to the Lazy Programmer's clear, well paced teaching and the graphics used to explain the math. One senior software engineer says much of it was review but still picked up new insights. Complaints are consistent: uneven detail between videos, a rushed pace on the math, thin real-world examples (one reviewer says they lean on NLP), and no guided projects. A few found the proofs overkill, and one wanted more help with singular covariances in the GMM section.
It was last updated in August 2026, though one reviewer notes a linked matrix reference site no longer works. There are no quizzes or coding exercises, so practice is left to the student. It suits programmers who like derivations and want to know why k-means and GMMs behave as they do. Anyone after a portfolio project or a fast library tutorial should look elsewhere.
Pros
- Builds k-means, soft k-means and Gaussian mixture models in code, not just library calls
- Covers hierarchical clustering in Scipy, reading dendrograms and the main linkage types
- Reviewers call the teaching clear and well paced, with graphics that make the math easier
- Updated August 2026, with roughly five and a half hours of core lessons
Cons
- Level of detail swings between videos, and the math can feel rushed
- No quizzes, coding exercises or guided real-world projects
- One reviewer found the examples lean on NLP; another wanted more help on singular covariances
This course is great. I have always wanted to learn machine learning, and this course has really demystified the subject for me. Lazy Programmer's instructions are really clear and well paced.
Labeled beginner, but reviewers say Python, NumPy, probability and matrix math are needed first.
What you will learn
- 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
Course content
9 sections · 57 lectures · 8 hours of video
- 1Introduction to Unsupervised Learning 3 free previews6 lectures · 32 min
- 2K-Means Clustering22 lectures · 2.5 hours
- 3Hierarchical Clustering5 lectures · 43 min
- 4Gaussian Mixture Models (GMMs)11 lectures · 1.6 hours
- 5Appendix / FAQ Finale1 lecture · 4 min
- 6Setting Up Your Environment (FAQ by Student Request)3 lectures · 42 min
- 7Extra Help With Python Coding for Beginners (FAQ by Student Request)4 lectures · 42 min
- 8Effective Learning Strategies for Machine Learning (FAQ by Student Request)4 lectures · 1 hour
- 9Appendix / FAQ Finale1 lecture · 6 min
Who it is for
The instructor says it suits
- Students and professionals interested in machine learning and data science
- People who want an introduction to unsupervised machine learning and cluster analysis
- People who want to know how to write their own clustering code
- Professionals interested in data mining big data sets to look for patterns automatically
What you need before you start
- Know how to code in Python and Numpy
- Install Numpy and Scipy
- Matrix arithmetic, probability
How it compares
Against the other 461 rated Udemy courses in Data Science on CourseDuck:
- Rating4.7 out of 5higher than 85% of them
- Reviews5,236#40 of 462 by number of reviews
- Length8 hoursshorter than 52% of them
- Last updatedAugust 2026more recently than 89% of them
Quality Score
Overall Score : 94 / 100
Course Description
Cluster analysis is a staple of unsupervised machine learning and data science.
It is very useful for data mining and big data because it automatically finds patterns in the data, without the need for labels, unlike supervised machine learning.
In a real-world environment, you can imagine that a robot or an artificial intelligence won’t always have access to the optimal answer, or maybe there isn’t an optimal correct answer. You’d want that robot to be able to explore the world on its own, and learn things just by looking for patterns.
Do you ever wonder how we get the data that we use in our supervised machine learning algorithms?
We always seem to have a nice CSV or a table, complete with Xs and corresponding Ys.
If you haven’t been involved in acquiring data yourself, you might not have thought about this, but someone has to make this data!
Those “Y”s have to come from somewhere, and a lot of the time that involves manual labor.
Sometimes, you don’t have access to this kind of information or it is infeasible or costly to acquire.
But you still want to have some idea of the structure of the data. If you're doing data analytics automating pattern recognition in your data would be invaluable.
This is where unsupervised machine learning comes into play.
In this course we are first going to talk about clustering. This is where instead of training on labels, we try to create our own labels! We’ll do this by grouping together data that looks alike.
There are 2 methods of clustering we’ll talk about: k-means clustering and hierarchical clustering.
Next, because in machine learning we like to talk about probability distributions, we’ll go into Gaussian mixture models and kernel density estimation, where we talk about how to "learn" the probability distribution of a set of data.
One interesting fact is that under certain conditions, Gaussian mixture models and k-means clustering are exactly the same! We’ll prove how this is the case.
All the algorithms we’ll talk about in this course are staples in machine learning and data science, so if you want to know how to automatically find patterns in your data with data mining and pattern extraction, without needing someone to put in manual work to label that data, then this course is for you.
All the materials for this course are FREE. You can download and install Python, Numpy, and Scipy with simple commands on Windows, Linux, or Mac.
This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.
"If you can't implement it, you don't understand it"
Or as the great physicist Richard Feynman said: "What I cannot create, I do not understand".
My courses are the ONLY courses where you will learn how to implement machine learning algorithms from scratch
Other courses will teach you how to plug in your data into a library, but do you really need help with 3 lines of code?
After doing the same thing with 10 datasets, you realize you didn't learn 10 things. You learned 1 thing, and just repeated the same 3 lines of code 10 times...
Suggested Prerequisites:
matrix addition, multiplication
probability
Python coding: if/else, loops, lists, dicts, sets
Numpy coding: matrix and vector operations, loading a CSV file
WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:
Check out the lecture "Machine Learning and AI Prerequisite Roadmap" (available in the FAQ of any of my courses, including the free Numpy course)
Instructor Details
- 4.7 Rating
5,236 Reviews
Lazy Programmer Team
The Lazy Programmer is a seasoned online educator with an unwavering passion for sharing knowledge. With over 10 years of experience, he has revolutionized the field of data science and machine learning by captivating audiences worldwide through his comprehensive courses and tutorials.
Equipped with a multidisciplinary background, the Lazy Programmer holds a remarkable duo of master's degrees. His first foray into academia led him to pursue computer engineering, with a specialized focus on machine learning and pattern recognition. Undeterred by boundaries, he then ventured into the realm of statistics, exploring its applications in financial engineering.
Recognized as a trailblazer in his field, the Lazy Programmer quickly embraced the power of deep learning when it was still in its infancy. As one of the pioneers, he fearlessly embarked on instructing one of the first-ever online courses on deep learning, catapulting him to the forefront of the industry.
More courses by Lazy Programmer Team
Artificial Intelligence: Reinforcement Learning in Python (2026)
4.9 (10,817 Reviews)
Provider: Udemy
Time: 14.7h
$79.99
Advanced AI: Deep Reinforcement Learning in Python (2026)
4.8 (6,557 Reviews)
Provider: Udemy
Time: 10.7h
$29.99
Unsupervised Machine Learning Hidden Markov Models in Python (2026)
4.4 (4,436 Reviews)
Provider: Udemy
Time: 9.8h
$29.99
Deep Learning Prerequisites: The Numpy Stack in Python V2 (2026)
4.4 (3,835 Reviews)
Provider: Udemy
Time: 2h
Free
Data Science: Supervised Machine Learning in Python (2026)
4.7 (3,555 Reviews)
Provider: Udemy
Time: 6.4h
$29.99
Deep Learning: GANs and Variational Autoencoders (2026)
4.7 (3,387 Reviews)
Provider: Udemy
Time: 7.9h
$29.99
Reviews
By Fernando Roca on 9/22/2024
This course might seem a bit hard at first, but if you really pay attention to what's going on you are going to understand everything. Make sure you know probability and Python well. Amazing course and thank you Lazy Programmer!
By Gabriel Larsson on 10/17/2023
Thank you for your hard work and dedication in creating such a valuable learning resource. Your course has undoubtedly helped me advance my skills and build a solid foundation in machine learning. I look forward to applying what I've learned to my future projects!
By Gayathri Krishnan on 11/5/2022
This course provided me with all the knowledge that I needed to take my machine learning skills to a new height. This course takes us through all the different kinds of clustering and really helps us develop a solid base for machine learning.
By Richard Soo on 4/25/2022
Expectation-maximization is a beast and this course covers a lot of ground. I don't think I'd recommend it as an introductory machine learning course but if you have experience with ML it will be helpful for thinking about the big picture of unsupervised learning and latent variables.
By Mauricio Sanaphre on 1/25/2021
So far I like the theory of how clustering works, I would suggest to add an example with numbers so we can see how the calculations are done using the formulas, and then follow the practical example with the code, that would be good. I am halfway in the course, so most likely there is a chance to give the 5th star :)
By Armand Thierry Bessala Eloundou on 6/27/2020
More than 37% of the course on installations (mainly installation for other author courses). For the rest of the 4 hours we have a lot of theoretical explanations: yes, the authors know their maths !!! Anyway, this course should not be labeled beginner but for people who need to write their own algorithms instead of using python libraries, I think it would be very useful for them, not yet for me. update: Anyway after Follow the appendice Part I'm not disapointed and will surelly take a lot of his courses .. but mixed them with other beginner/intermediates courses to fully understand his material
By Anonymized User on 6/6/2020
Love the maths part in the course! Provide intuitive and technical overview of the models! Its better than other courses which just dumps the code with the intuitive aspect of the model but with no comparison between models and the maths behind it. Highly recommended course!
By Xue Xia on 6/4/2020
I was pleased to take this course by the lazy programmer. It's straightforward and teaches all the promised subjects. It goes into the mathematical background more so than I expected. Nice practical examples included tweets analysis and DNA clustering. If you are new to machine learning or advanced and wants to learn more I am sure you can take this course and find lots of benefit.
By Anders Albert on 4/27/2020
What I most enjoy about this course was two things. First, it went into the math. I appreciate seeing some formulas, and relating the algorithms to the mathematics behind them. Second, two out of three algorithms were implemented manually. I find this very helpful. Compared to other ML courses this is very short, half of the course is an appendix. The programming lectures skips some steps and I miss some explanation for why the lecturer does what he does. There are no exercises either. You are encouraged to implement algorithms before you see them and work out the math for yourself. But there is no guidance throughout this process, except for going back into the lectures. That being said. I found the course valuable and in particular enjoyed the clear explanation of Gaussian Mixture Models, which is rarely covered in other ML courses. ---------------------------------------------------- After the courses updated with more GMM lectures I had to revisit the review. The new lectures were stellar. They help tie together GMM with Bayes classifier providing a deep insight to both methods. This course goes much more in depth than any other ML course I have done.
By Kaz Olad on 11/23/2019
Great stuff. Instructor speaks Mathematics like it's his native language. I wish there was more explanation and examples (at a little slower pace) to help me grasp the materials better. I recommend the course for the intermediate/advanced person who wishes to learn unsupervised clustering.
By Preeti Swaminathan
1. The video is well paced and neatly divided.
2. Kmeans and hierarchical clustering is explained very well. infact one of the best I have come across.
3. solution example could definitely be better. A good use case, clustering, and a conclusion is what i was expected when I read about the course.
4. Prereq does not mention NLP, examples are NLP based. There is a DNA example however, I did not make my understanding any better. I might have been stressing more on example than concept, but i love courses that have good examples to back the concepts since I understand the concepts much better that way.
By Bryden McLeod
Brief but informative introduction - practical tips on how to study the material.









