All Topics · Lesson 30 of 77
Linear Regression
Complete learning notes
01Introduction
Linear Regression is the simplest and most fundamental supervised learning algorithm, and often the very first real ML model students build. It predicts a continuous numeric value based on a single input feature, by fitting a straight line through the data. Understanding it deeply will make every other algorithm in this module easier to grasp.
02What is Linear Regression?
Simple definition: Linear Regression is an algorithm that predicts a numeric value by fitting a straight line through the relationship between one input feature and the output.
Technical explanation: Simple Linear Regression models the relationship between a single independent variable (feature) x and a dependent variable (target) y using the equation y = mx + b, where the algorithm learns the optimal values of m (slope) and b (intercept) that minimize the overall prediction error across the training data.
03Why is it Important?
- It's the foundational regression algorithm — nearly every other regression technique builds on its core ideas.
- It's simple, fast, and highly interpretable — you can directly see how much the output changes per unit change in the input.
- It's a common baseline model against which more complex models are compared.
04Prerequisites
Comfort with Basic Statistics and Linear Algebra (Module 1), and Supervised Learning concepts (Module 2).
05Core Concepts
- The line equation: y = mx + b
- Slope (m) and intercept (b)
- The cost function (Mean Squared Error)
- Finding the "line of best fit"
- Making predictions with the trained line
06Detailed Explanation
a) The Line Equation
Linear Regression assumes the relationship between input x and output y can be approximated by a straight line: y = mx + b, where m is the slope (how steeply y changes as x increases) and b is the intercept (the value of y when x is 0).
b) The Cost Function
To find the "best" line, we need a way to measure how wrong a given line is. The most common cost function for Linear Regression is Mean Squared Error (MSE) — the average of the squared differences between actual and predicted values. A smaller MSE means a better-fitting line.
c) Finding the Line of Best Fit
The algorithm searches for the values of m and b that minimize the MSE across all training examples. This can be solved directly using a mathematical formula (Ordinary Least Squares) or iteratively using an optimization technique called Gradient Descent.
d) Making Predictions
Once m and b are learned, predicting a new value is simple: plug the new x into y = mx + b.
07How It Works
- Collect training data with one input feature (
x) and a known numeric output (y). - Calculate the values of
mandbthat minimize the Mean Squared Error across all training points. - The resulting line (
y = mx + b) is the trained model. - For any new input value, plug it into the equation to get a predicted output.
08Real-World Example
Imagine predicting a person's weight based on their height. Using historical height-weight data, Linear Regression finds the straight line that best represents this relationship, letting you estimate a reasonable weight for a new person based solely on their height.
09Mathematical Explanation
Line Equation:
y = mx + b
Where:
- y = predicted output
- x = input feature
- m = slope (how much y changes per unit of x)
- b = intercept (value of y when x = 0)
Slope and Intercept Formulas (Ordinary Least Squares):
m = Σ((x − x̄)(y − ȳ)) / Σ((x − x̄)²)
b = ȳ − m × x̄
Where:
- x̄ = mean of all x values
- ȳ = mean of all y values
Mean Squared Error (Cost Function):
MSE = (1/n) × Σ(yᵢ − ŷᵢ)²
Where:
- n = number of data points
- yᵢ = actual value
- ŷᵢ = predicted value
Numerical Example:
Data: x = [1, 2, 3, 4], y = [3, 5, 7, 9]
- x̄ = 2.5, ȳ = 6
- m = Σ((x−2.5)(y−6)) / Σ((x−2.5)²) = [(-1.5×-3)+(-0.5×-1)+(0.5×1)+(1.5×3)] / [2.25+0.25+0.25+2.25] = (4.5+0.5+0.5+4.5)/5 = 10/5 = 2
- b = 6 − (2×2.5) = 6 − 5 = 1
So the learned line is: y = 2x + 1
Interpreting the Result: For every 1-unit increase in x, y increases by 2 units (the slope), and when x = 0, y equals 1 (the intercept). Checking: at x=1, y = 2(1)+1 = 3 ✓, matching our data exactly, since this example was constructed as a perfectly linear relationship.
10Python Example
pythonimport numpy as np from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score # Training data: house size (in 100s sq ft) vs price (in $1000s) X = np.array([[10], [15], [20], [25], [30]]) y = np.array([200, 250, 300, 350, 400]) model = LinearRegression() model.fit(X, y) print("Slope (m):", model.coef_[0]) print("Intercept (b):", model.intercept_) predictions = model.predict(X) print("Predictions on training data:", predictions) new_size = np.array([[22]]) predicted_price = model.predict(new_size) print("Predicted price for size 22:", predicted_price[0]) print("MSE:", mean_squared_error(y, predictions)) print("R² Score:", r2_score(y, predictions))
Expected Output (approximate):
textSlope (m): 10.0 Intercept (b): 100.0 Predictions on training data: [200. 250. 300. 350. 400.] Predicted price for size 22: 320.0 MSE: 0.0 R² Score: 1.0
11Code Explanation
model.fit(X, y)performs the actual training — internally calculating the slope and intercept that minimize MSE.model.coef_[0]andmodel.intercept_reveal the learned slope and intercept — here, the model discoveredprice = 10 × size + 100.model.predict(new_size)uses the learned equation to estimate a price for a new, unseen house size.mean_squared_error()andr2_score()(explored fully in Module 6) quantify how well the model's predictions matched the actual training values — here, both metrics show a perfect fit since this example data is perfectly linear.
12Advantages
- Simple, fast to train, and highly interpretable.
- Provides a clear mathematical relationship between input and output.
- Works very well when the true relationship between variables is genuinely linear.
13Limitations
- Assumes a strictly linear relationship — performs poorly on data with curved or complex patterns.
- Highly sensitive to outliers, which can significantly distort the fitted line.
- Only handles one input feature at a time (Multiple Linear Regression, covered next, addresses this).
14Common Mistakes
- Applying Linear Regression to clearly non-linear data without any transformation.
- Not checking for and addressing outliers before training, given the algorithm's sensitivity to them.
- Confusing the slope's meaning — it represents change in y per unit change in x, not the value of y itself.
15Best Practices
- Visualize your data with a scatter plot first to check if a linear relationship genuinely appears reasonable.
- Check for and handle outliers before training, given Linear Regression's sensitivity to them.
- Use evaluation metrics like R² and RMSE (Module 6) to assess fit quality, not just visual inspection.
16Real-World Applications
- Predicting house prices based on size.
- Estimating sales based on advertising spend.
- Forecasting simple trends like temperature changes over time.
17Interview-Oriented Points
- Be ready to explain the equation
y = mx + band what each term represents. - Understand how Mean Squared Error is used to find the "best" line.
- Be able to explain why Linear Regression is sensitive to outliers.
18Exam-Oriented Points
- Linear Regression models y = mx + b, learning the slope (m) and intercept (b) from data.
- MSE (Mean Squared Error) is the standard cost function used to measure and minimize prediction error.
- Predictions are made by plugging new x values into the learned equation.
19Comparison Table — Simple Linear Regression vs Multiple Linear Regression (Preview)
| Aspect | Simple Linear Regression | Multiple Linear Regression (Next Topic) |
|---|---|---|
| Number of input features | Exactly one | Two or more |
| Equation | y = mx + b | y = b₀ + b₁x₁ + b₂x₂ + ... + bₙxₙ |
| Visualization | A single 2D line | A higher-dimensional plane/hyperplane |
| Example use case | Predicting price from size alone | Predicting price from size, location, and age together |
20Quick Revision
- Linear Regression fits a straight line (y = mx + b) to model the relationship between one input and one output.
- The slope and intercept are learned by minimizing Mean Squared Error (MSE).
- Predictions are made by plugging new input values into the learned equation.
- Linear Regression is simple and interpretable but assumes a genuinely linear relationship and is sensitive to outliers.