Supervised vs Unsupervised Learning
Supervised vs Unsupervised Learning
The most fundamental split in machine learning is between supervised and unsupervised learning. Choosing the wrong type for your problem is one of the most common mistakes beginners make — this lesson will make sure that never happens to you.
Supervised Learning: Learning with a Teacher
In supervised learning, every training example has a label — the correct answer. The algorithm's job is to learn the relationship between inputs (features) and outputs (labels) well enough to make accurate predictions on new data.
The name comes from the idea that a "supervisor" has already labeled the data for you.
The Two Flavors of Supervised Learning
Classification — The output is a category.
# Examples of classification problems:
# Input: email content → Output: "spam" or "not spam"
# Input: medical image → Output: "malignant" or "benign"
# Input: customer data → Output: "will churn" or "will stay"
# Input: photo → Output: "cat", "dog", or "bird"
Regression — The output is a number.
# Examples of regression problems:
# Input: house features → Output: price ($450,000)
# Input: weather data → Output: temperature tomorrow (72°F)
# Input: ad spend → Output: expected revenue ($12,400)
# Input: product specs → Output: expected sales (1,240 units)
A Simple Classification Example
from sklearn.linear_model import LogisticRegression
import numpy as np
# Training data: [hours studied, hours slept] → pass(1) or fail(0)
X_train = np.array([
[2, 5], [4, 6], [6, 7], [8, 8], [10, 8], # passed
[1, 3], [2, 4], [3, 3], [1, 5], [2, 2], # failed
])
y_train = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0])
model = LogisticRegression()
model.fit(X_train, y_train)
# Predict for new student: 5 hours studied, 7 hours slept
prediction = model.predict([[5, 7]])
print(f"Will the student pass? {'Yes' if prediction[0] == 1 else 'No'}")
Unsupervised Learning: Finding Hidden Structure
In unsupervised learning, you have no labels. The algorithm must find meaningful patterns, groups, or structure entirely on its own.
Think of it like being handed a pile of documents in a language you don't speak and being asked to organize them into piles. You can't read them, but you notice patterns — some share certain symbols, others have similar lengths. You group them by observed patterns, not by knowing what they mean.
The Main Types of Unsupervised Learning
Clustering — Find natural groupings in data.
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Customer data: [annual spend, visit frequency]
customers = [
[1200, 5], [1500, 6], [1100, 4], # low-value
[8000, 24], [9500, 28], [7200, 20], # high-value
[4500, 12], [5000, 15], [4200, 11], # mid-value
]
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(customers)
print("Customer segments:", kmeans.labels_)
# Output: [0, 0, 0, 2, 2, 2, 1, 1, 1] — 3 distinct groups!
Dimensionality Reduction — Compress data while preserving its structure.
PCA (Principal Component Analysis) is the most common technique. It takes high-dimensional data (e.g., 100 features) and reduces it to 2-3 dimensions you can visualize — while keeping the most important variation.
Anomaly Detection — Find the unusual data points.
from sklearn.ensemble import IsolationForest
# Normal transactions
transactions = [[100], [120], [95], [115], [98],
[105], [10000]] # last one is suspicious!
detector = IsolationForest(contamination=0.1)
detector.fit(transactions)
predictions = detector.predict(transactions)
# -1 = anomaly, 1 = normal
# Output: [1, 1, 1, 1, 1, 1, -1] ← correctly flags $10,000 transaction
How to Choose: Supervised vs Unsupervised
Use this decision framework:
| Question | If Yes → | If No → |
|---|---|---|
| Do you have labeled data? | Supervised | Unsupervised |
| Do you know what output you want? | Supervised | Unsupervised |
| Are you predicting something specific? | Supervised | Unsupervised |
| Are you exploring unknown patterns? | Unsupervised | Supervised |
Real-world nuance: Most production ML systems use both. Netflix uses unsupervised clustering to identify viewer segments, then supervised learning to predict which specific shows each segment will enjoy.
A Third Type: Reinforcement Learning
Worth mentioning: reinforcement learning (RL) doesn't fit neatly in either category. An RL agent learns by:
- Taking actions in an environment
- Receiving rewards or penalties
- Gradually learning which actions maximize rewards
Examples: game-playing AI (AlphaGo, OpenAI Five), robotics, recommendation systems that optimize long-term engagement.
We'll touch on RL concepts later in this course, but supervised and unsupervised learning are your daily workhorses — master those first.
Quick Reference
SUPERVISED LEARNING
├── Classification (output = category)
│ ├── Binary: spam/not spam
│ └── Multi-class: cat/dog/bird
└── Regression (output = number)
├── Linear regression
└── Polynomial regression
UNSUPERVISED LEARNING
├── Clustering (find groups)
│ ├── K-Means
│ └── DBSCAN
├── Dimensionality Reduction
│ ├── PCA
│ └── t-SNE
└── Anomaly Detection
└── Isolation Forest
Next Lesson
Now that you understand the two main paradigms, we'll walk through the complete ML workflow from raw data to deployed model — the end-to-end process every ML project follows.
Get this course's notes on Telegram!
Free cheat sheets, summaries & practice exercises