Model Performance Concepts

  • Model performance concepts explain how well a machine learning model generalizes to unseen data while avoiding overfitting and underfitting.
  • Bias vs Variance

    These are two sources of prediction error in machine learning models.

    Total Error=Bias2+Variance+Irreducible Error\text{Total Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error}Total Error=Bias2+Variance+Irreducible Error

    Bias

    • Bias is error due to overly simplistic assumptions in the model

    • High bias → model cannot capture patterns in data → underfitting

    Example: Using a linear model to predict a highly non-linear relationship

    • Model prediction is consistently far from actual values

    • Low training accuracy

    Variance

    • Variance is error due to sensitivity to training data

    • High variance → model captures noise in training dataoverfitting

    Example: Using a high-degree polynomial for small dataset

    • Training accuracy → very high

    • Test accuracy → very low (fails on new data)


    Overfitting

    • Model fits training data too closely, capturing both patterns and noise

    • Performs well on training data but poorly on unseen data

    Causes

    1. Very complex model

    2. Too many features

    3. Insufficient training data

    Solutions

    • Simplify model

    • Reduce features

    • Use regularization (L1, L2)

    • Get more training data

    • Cross-validation


    Underfitting

    • Model fails to capture underlying patterns in data

    • Performs poorly on training and test data

    Causes

    1. Very simple model

    2. Not enough features

    3. High bias algorithm

    Solutions

    • Increase model complexity

    • Add relevant features

    • Reduce regularization

    Bias-Variance Tradeoff

    Aspect

    High Bias

    High Variance

    Error Type

    Underfitting

    Overfitting

    Training Accuracy

    Low

    High

    Test Accuracy

    Low

    Low

    Solution

    More complex model

    Simplify model / Regularization

    Visual Example (Python)

Bias–Variance Tradeoff Example in Python using Polynomial Regression

This Python example demonstrates the concept of the Bias–Variance Tradeoff using Polynomial Regression. The code generates sample data and fits models with different polynomial degrees (1, 3, and 15) to illustrate underfitting, a good fit, and overfitting. The results are visualized using Matplotlib to show how model complexity affects the prediction curve.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# Generate data
np.random.seed(42)
X = np.linspace(0, 10, 20).reshape(-1,1)
y = np.sin(X) + 0.2*np.random.randn(20,1)

# Fit models of different complexity
degrees = [1, 3, 15]  # Linear=underfit, 3=good, 15=overfit
plt.scatter(X, y, color='black', label='Data')

X_plot = np.linspace(0, 10, 100).reshape(-1,1)
for d in degrees:
    poly = PolynomialFeatures(degree=d)
    X_poly = poly.fit_transform(X)
    model = LinearRegression()
    model.fit(X_poly, y)
    y_plot = model.predict(poly.transform(X_plot))
    plt.plot(X_plot, y_plot, label=f'Degree {d}')

plt.legend()
plt.title("Bias-Variance Example")
plt.show()
  • Output:
Lesson image
    • Degree 1 → High Bias (Underfitting)

    • Degree 3 → Balanced (Good fit)

    • Degree 15 → High Variance (Overfitting)

    Summary Table

    Concept

    Definition

    Effect

    Solution

    Bias

    Error due to simplistic assumptions

    Underfitting

    Increase model complexity

    Variance

    Error due to sensitivity to training data

    Overfitting

    Simplify model / Regularization

    Overfitting

    Model fits training noise

    High train accuracy, low test accuracy

    Reduce features, Regularization, More data

    Underfitting

    Model fails to capture patterns

    Low train & test accuracy

    Increase complexity, Add features