Quick answer

Supervised learning is the machine learning approach where you train a model on examples that already have the correct answer attached, like emails already labeled spam or not spam, so the model learns to predict that answer on new, unlabeled examples. It splits into two main problem types: regression, where you predict a number, and classification, where you predict a category. The best free courses to learn it are Kaggle Learn’s Intro to Machine Learning for a fast, code-first start, and Andrew Ng’s Machine Learning Specialization on Coursera (free to audit) for a deeper, more mathematical treatment.

Supervised learning is where almost every practical machine learning system starts, and it’s usually the first real technique people learn after covering the basics of what AI and ML are in general. It’s also where the two core problem types, regression and classification, get defined clearly enough that the rest of machine learning starts making more sense.

Regression versus classification, with real examples

Both regression and classification are supervised learning, meaning both require labeled training data. The difference is what kind of answer you’re predicting.

  • Regression predicts a number: predicting a house’s sale price from its size and location, predicting tomorrow’s temperature, or estimating how many units of a product will sell next month.
  • Classification predicts a category: deciding whether an email is spam or not spam, whether a tumor is benign or malignant, or which of several categories a customer support ticket belongs to.

The training process is conceptually similar for both: the model looks at labeled examples, makes a guess, checks how wrong the guess was against the real answer, and adjusts. What differs is how “wrong” gets measured and what a “correct” output actually looks like at the end.

Supervised learning splits into two problem types depending on whether you’re predicting a number or a category.

The best free courses for supervised learning specifically

  • Kaggle Learn’s Intro to Machine Learning: a short, free, code-first course that gets you training and evaluating a real supervised model within a few hours, using scikit-learn on a real dataset.
  • Andrew Ng’s Machine Learning Specialization (Coursera, free to audit): goes deeper into the math and intuition behind supervised learning, covering linear regression, logistic regression for classification, and the underlying optimization math, at a genuinely thorough level.
  • Google’s Machine Learning Crash Course: covers supervised learning fundamentals with a strong practical, hands-on focus and real exercises.

If you’re deciding between the Kaggle and Coursera routes, Kaggle gets you writing working code faster, while Coursera builds a more complete conceptual foundation. Doing Kaggle Learn first and Andrew Ng’s course second is a reasonable order if you have time for both.

Kaggle Learn gets you writing code faster. Andrew Ng’s course builds a deeper conceptual foundation. Both are free.

What “training” and “testing” actually mean here

A core idea in supervised learning that trips people up early is why you never train and test a model on the exact same data. If you did, the model could simply memorize the answers rather than learning a pattern that generalizes to new examples, a problem called overfitting. The standard practice is to split your labeled data into a training set the model learns from, and a separate test set it’s never seen, used only to check how well it actually generalizes.

  • Training set: what the model actually learns the pattern from.
  • Test set: held back completely, used only to check real performance afterward.
  • A model that does great on training data but poorly on test data is overfitting, not learning.
Keeping training and test data separate is what tells you whether a model actually learned a pattern or just memorized examples.
Picking regression versus classification correctly at the start saves you from reworking the whole approach later.

A realistic first supervised learning project

Pick a small, well documented dataset with a clear label already attached, something like predicting housing prices (regression) or classifying passengers as survivors or not from the Titanic dataset (classification), both common starting points on Kaggle specifically because they’re clean and well suited to a first project. Train a simple model, check its accuracy on the held-out test set, and try improving it once, rather than chasing a perfect score on the first attempt. That loop, train, test, adjust, is the actual skill you’re building, more than any single dataset.

For a broader path once you’re comfortable with supervised learning specifically, our guide to free unsupervised and reinforcement learning courses covers the other two major branches of machine learning, and our free machine learning courses for beginners guide covers the fuller starting sequence.

Ready to start training your first supervised model? Browse today’s free machine learning courses.

Browse free courses

Frequently asked questions

What is supervised learning in simple terms?

Supervised learning is training a model on data that already has the correct answer attached, so it learns to predict that answer on new data it hasn’t seen. It’s called supervised because the labeled examples act like a teacher showing the model the right answer during training.

What’s the difference between regression and classification?

Regression predicts a number, like a price or a temperature. Classification predicts a category, like spam versus not spam. Both are types of supervised learning and use a similar training process, but the way you measure and interpret the output is different.

What’s the best free course specifically for supervised learning?

Kaggle Learn’s Intro to Machine Learning is the fastest free way to start writing real supervised learning code. Andrew Ng’s Machine Learning Specialization on Coursera, free to audit, goes deeper into the underlying math and theory if you want a more complete foundation.

Why do you need a separate test set instead of just using all your data to train?

If you test a model on the same data it trained on, it can score well simply by memorizing the answers rather than learning a pattern that generalizes. A held-out test set the model never saw during training is what actually tells you whether it learned something useful.

What’s a good first supervised learning project?

A small, well documented dataset with a clear label, like predicting housing prices for regression or classifying Titanic passengers as survivors or not for classification. Both are common Kaggle starting points precisely because they’re clean and well suited to learning the full train, test, and evaluate workflow.