Linear and Quadratic Discriminant Analysis: Unveiling the Power of Statistical Classifiers

Table of Contents


Welcome, all curious minds, to the fascinating world of machine learning! Today, we’ll dive into the depths of Linear Discriminant Analysis (LDA) and Quadratic Discriminant Analysis (QDA). If you’re thinking that these sound like the names of high-tech space robots, don’t worry! We’re going to make it as simple and as fun as understanding your favorite superhero comic.

Imagine you’re at a fruit stand with apples and oranges mixed together, and you’re asked to separate them. How would you do it? You’d probably look at the shape, color, or size of the fruit, right? You’re naturally classifying the fruits based on certain features. That’s what LDA and QDA do too! They’re like superheroes who use their unique powers (mathematical formulas) to separate and classify data points, just like separating apples and oranges.

So, why would you want to use LDA or QDA? Let’s go back to the fruit stand. If you had to separate thousands of fruits, you’d wish for a superpower to do it quickly and accurately, wouldn’t you? In the same way, when dealing with vast amounts of data, LDA and QDA come to the rescue, providing us with a super-fast and super-efficient way to classify data.

By the end of this article, you’ll understand what LDA and QDA are, how they work, and when to use them. So, buckle up as we embark on this exciting journey into the world of statistical classifiers!


Before we jump into the world of LDA and QDA, let’s revisit some old friends from our previous articles – Logistic Regression and Naive Bayes. Remember how these superheroes could predict categories based on given features? Just like our fruit stand scenario, Logistic Regression and Naive Bayes help us classify data into different categories.

While Logistic Regression is like a friend who predicts if you’ll like a movie based on your past preferences, Naive Bayes is the friend who predicts if it will rain today based on the current weather conditions. They both make predictions but in slightly different ways.

But why are we talking about them? Well, just as Batman learned from his mentors before becoming a superhero, LDA and QDA have also learned a thing or two from Logistic Regression and Naive Bayes. They use a similar concept called the Bayes theorem to make their predictions.

Now, let’s imagine you have a huge box filled with different toys – cars, balls, dolls, blocks, and more. Finding a specific toy could be quite a task, right? This situation is similar to having a dataset with many features, making it hard to understand and manage. That’s where LDA and QDA come into play. They use their superpowers to simplify this big box of toys (high-dimensional data), making it easier for us to understand and work with.

So, are you ready to unravel the mysteries of these superheroes of classification? Let’s dive deeper into the world of LDA and QDA!


Linear Discriminant Analysis or LDA is like a superhero who builds walls. That’s right, walls! But these aren’t just any walls. They’re smart walls that help separate different types of things. In our fruit stand example, think of LDA as a superhero who can build a wall to perfectly separate apples from oranges.

So, how does LDA build these walls? It does so using its superpower, which is a mathematical formula. This formula looks at all the fruits (or data points) and figures out the best place to build the wall. It makes sure the apples are on one side and the oranges on the other. In technical terms, this ‘wall’ is called a decision boundary.

The LDA’s superpower formula is based on Bayes’ theorem. Do you remember the famous detective Sherlock Holmes? Just as he used clues to solve mysteries, Bayes’ theorem uses evidence to make predictions. For LDA, this evidence comes in the form of data points or features.

Now, what makes LDA ‘linear’? Imagine you’re building a house with only straight LEGO bricks. No matter how you arrange them, your house will always have straight lines and angles, right? That’s exactly how LDA builds its walls – in straight lines. That’s why it’s called Linear Discriminant Analysis!

Let’s dive a little deeper into the LDA’s formula:

LDA calculates the mean (or average) location of each class of fruits and measures how spread out they are (this spread is called variance). Then, it builds a wall where the difference in location between apples and oranges is the largest, but the variance (or spread) within the apples and oranges is the smallest. The goal is to maximize the distance between means of two classes while minimizing the spread within each class.


Quadratic Discriminant Analysis or QDA is like the sibling of LDA. But unlike LDA, QDA doesn’t just build straight walls – it builds curved ones too! Imagine you have apples, oranges, and bananas mixed up at the fruit stand. Now, you can’t separate all three types of fruits with straight walls, can you? That’s when QDA comes to the rescue!

QDA uses the same Bayes’ theorem formula as LDA. It looks at all the fruits, figures out the best place to build the wall, and makes sure the right fruits are on the right side. But there’s a twist. The walls that QDA builds can be straight or curved. This superpower comes in handy when the data points (or fruits) can’t be separated by a straight line.

So, why is it called Quadratic Discriminant Analysis? Well, do you remember learning about curves in math class? The simplest equation for a curve is a quadratic equation. Similarly, QDA uses a quadratic equation to build its curved walls. Hence, the name Quadratic Discriminant Analysis!

Let’s look a little closer at the QDA’s formula:

Just like LDA, QDA calculates the mean and variance for each class of fruits. But instead of assuming that the spread (variance) within each fruit type is the same (like LDA does), QDA allows for each type of fruit to have its own unique spread. This gives QDA the flexibility to build both straight and curved walls.

But with great power comes great responsibility. QDA may be more flexible than LDA, but it also requires more data to build its walls accurately. If the data is limited or if the fruits are pretty easy to separate, it might be better to call in LDA to save the day!

I hope this gives you a good understanding of LDA and QDA. In the next section, we’ll discuss key concepts used in LDA and QDA in more detail.

Remember, while the maths behind these algorithms may seem intimidating at first, don’t be discouraged. Just think of it as the superpower that these superheroes use to sort out your data!


Now that you’re familiar with the superheroes LDA and QDA, let’s take a peek into their toolkits. Here are some key terms that these statistical heroes use in their mission to sort and classify data.

  1. Linear and Quadratic Discriminant Analysis: These are both statistical methods used to classify data points into different groups (or classes). LDA assumes that the variance within each class is the same, resulting in linear boundaries (like straight walls). On the other hand, QDA allows each class to have its own variance, which can result in quadratic (curved) boundaries.
  1. Bayes’ Theorem: Named after the statistician Thomas Bayes, this theorem describes the probability of an event based on prior knowledge of conditions related to the event. Just like a detective uses evidence to solve a case, LDA and QDA use this theorem to make predictions.
  1. Covariance Matrix: This is like the rule book that LDA and QDA refer to when deciding where to place their walls. It measures how much each feature (like the size or color of a fruit) varies from the mean (average) in relation to each other features.
  1. Decision Boundary: This is the ‘wall’ that LDA and QDA build to separate different classes of data. In LDA, the decision boundary is linear (straight), while in QDA, it can be quadratic (curved).


Example 1: Medical Diagnosis

Imagine a doctor who has a list of symptoms from several patients, and she wants to diagnose whether they have diseases A, B, or C. She can use LDA or QDA to analyze these symptoms and classify each patient into the correct disease category.

LDA would work well if the symptoms for each disease are fairly distinct and can be separated with ‘straight walls’. For instance, if patients with disease A always have symptom X and patients with disease B never have symptom X, a straight decision boundary can be drawn based on the presence or absence of symptom X.

However, if the symptoms overlap and are more complex, QDA might be the better option. For example, if patients with disease C can sometimes exhibit symptoms of both diseases A and B, a curved decision boundary might be needed to accurately classify these patients.

Example 2: Email Filtering

Think about an email server that wants to classify incoming emails as ‘spam’ or ‘not spam’. Each email can be analyzed based on features like the number of capital letters, the number of exclamation marks, and specific suspicious words.

LDA might be used if the characteristics of spam and non-spam emails are relatively distinct. For instance, if spam emails always have a high number of capital letters and non-spam emails never do, a straight decision boundary can be drawn based on this feature.

However, QDA would be useful if there’s a lot of overlap between spam and non-spam emails. For example, some spam emails might not have many capital letters, and some non-spam emails might use exclamation marks excessively. In this case, a curved decision boundary might do a better job of accurately classifying these emails.

Remember, while these examples make the process sound straightforward, real-world data is often messy and complex. LDA and QDA are powerful tools, but they require careful implementation and interpretation. In the next section, we’ll discuss how to apply these methods using real datasets.


Let’s imagine our superheroes, LDA and QDA, have arrived at a garden with different types of flowers. They’re asked to classify each flower based on its characteristics. But how do they know which flower is which? They need a guide, right? In machine learning, we call this guide a ‘dataset’.

For our superhero mission, we’re going to use a famous dataset called the ‘Iris’ dataset. Why ‘Iris’? Well, it’s not because our superheroes have an eye for flowers! Iris is actually a type of flower, and this dataset contains measurements of different Iris flowers.

The Iris dataset is like a guidebook with details about different Iris flowers. It has four features (like clues for our superheroes): Sepal Length, Sepal Width, Petal Length, and Petal Width. Each of these features gives us some information about the flower’s shape and size. Using these features, our superheroes will classify each flower into one of three species: Setosa, Versicolor, or Virginica.

Our dataset has 150 entries, with 50 entries for each species. So, we have an equal number of each type of Iris flower. This balance helps our superheroes to learn how to classify each type of Iris flower correctly.

In the next section, we’ll look at how to use this dataset to train our superheroes, LDA and QDA, so they can start classifying flowers accurately!


Importing required packages

Before we start, we need to gather our superhero tools. In coding terms, these are the libraries or packages that we need to import into our Python environment. Think of it as a superhero utility belt!

# Importing necessary libraries
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA
from sklearn.metrics import confusion_matrix, classification_report
import seaborn as sns
import matplotlib.pyplot as plt

Loading the dataset

Next, we need to introduce our superheroes to the Iris flower garden. This is where they’ll learn how to classify each flower correctly. We’ll load our Iris dataset using the Seaborn library.

# Loading the Iris dataset
iris = sns.load_dataset('iris')

Preparing the dataset

Just like a garden needs to be prepared before planting seeds, we need to prepare our dataset before training our models. We’ll split our dataset into ‘features’ and ‘labels’. ‘Features’ are the measurements of the flowers (Sepal Length, Sepal Width, Petal Length, and Petal Width), and ‘labels’ are the species names (Setosa, Versicolor, Virginica).

# Preparing the dataset
X = iris.drop('species', axis=1)
y = iris['species']

Splitting the data into Training and Testing sets

Now, we split our dataset into two parts: a training set and a testing set. The training set is like the training ground for our superheroes. Here, they’ll learn how to classify flowers. The testing set is where they’ll put their skills to the test!

# Splitting the data into Training and Testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)

Applying the Standard Scaler

To ensure fair comparison and accurate results, we need to make sure that all the features are on the same scale. It’s like making sure all the runners in a race start at the same line. To do this, we’ll use the Standard Scaler from sklearn.

# Applying the Standard Scaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

Training the models

Finally, it’s time for our superheroes to start training! Here, they’ll learn how to distinguish between the different types of Iris flowers.

# Training the LDA and QDA models
lda = LDA()
qda = QDA(), y_train), y_train)

Making predictions

After training, our superheroes are ready to make predictions. They’ll use what they’ve learned to classify the flowers in the testing set.

# Making predictions
lda_pred = lda.predict(X_test)
qda_pred = qda.predict(X_test)

Evaluating the predictions

We need to know how well our superheroes did, right? We’ll evaluate their performance using a Confusion Matrix and Classification Report.

# Evaluating the LDA predictions
lda_cm = confusion_matrix(y_test, lda_pred)
lda_report = classification_report(y_test, lda_pred)
print("LDA Confusion Matrix:")
print("LDA Classification Report:")

# Evaluating the QDA predictions
qda_cm = confusion_matrix(y_test, qda_pred)
qda_report = classification_report(y_test, qda_pred)
print("QDA Confusion Matrix:")
print("QDA Classification Report:")

Visualizing the Confusion Matrix

A Confusion Matrix can be a bit…well, confusing to look at. Let’s visualize it with some pretty colors!

# Visualizing the LDA Confusion Matrix
sns.heatmap(lda_cm, annot=True)
plt.title('LDA Confusion Matrix')

# Visualizing the QDA Confusion Matrix
sns.heatmap(qda_cm, annot=True)
plt.title('QDA Confusion Matrix')

And there you have it! We’ve successfully applied LDA and QDA to the Iris dataset. Give it a try yourself in the playground.



After our superheroes, LDA and QDA, have used their superpowers to classify the data, it’s time to check how well they’ve done. This is a bit like a superhero’s performance review. This review is carried out using two special tools: the confusion matrix and the classification report.

Let’s first talk about the confusion matrix. Imagine you’re playing a guessing game where you have to identify the type of fruit just by touching it. Once you’re done, you compare your guesses with the actual fruits you touched. You may have guessed some right (true positives and true negatives) and some wrong (false positives and false negatives). The confusion matrix is like a scoreboard that shows you these results.

LDA Confusion Matrix:

QDA Confusion Matrix:

Both the LDA and QDA have scored a perfect game! Each fruit (or in this case, type of flower) was correctly identified, with no mix-ups.

Now let’s move on to the classification report, which is like a detailed report card. This report card doesn’t just tell you how many answers you got right but also gives scores on precision (how often are you correct when you guess a category), recall (how often you guess a category when it’s correct), and f1-score (a combination of precision and recall). The closer these scores are to 1, the better our superhero (or model) has performed.

Looking at the reports for LDA and QDA, it seems like they’ve both aced their tests! They have a precision, recall, and f1-score of 1, which is as good as it gets! This means that they have classified each type of flower perfectly.


Having understood how well our superheroes have performed, let’s see how they stack up against other heroes on the block, like Logistic Regression and Naive Bayes. It’s a bit like comparing Batman with Superman, each having their own unique powers and strengths.

Now, LDA and QDA are statistical classifiers, meaning they use the data’s statistics (like mean and variance) to classify the data. On the other hand, Logistic Regression uses the data’s features directly to predict the class probabilities, while Naive Bayes assumes each feature is independent and calculates the class probability accordingly.

When compared to Logistic Regression and Naive Bayes, LDA, and QDA have a few distinct advantages. Firstly, they can be more stable when the number of data points is small compared to the number of features, a situation where other classifiers can struggle. Secondly, LDA and QDA can also perform dimensionality reduction (like organizing a messy toy box) and make your data easier to visualize and understand.

However, these superpowers come with a cost. LDA and QDA make certain assumptions about your data – LDA assumes that all classes have the same variance, while QDA assumes that each feature in each class is normally distributed. If these assumptions are violated, other heroes like Logistic Regression or Naive Bayes might do a better job.

At the end of the day, choosing the right superhero (or model) depends on the specifics of the task at hand – the kind of data we’re dealing with and the problem we’re trying to solve. Sometimes the data aligns with the assumptions made by LDA and QDA, making them the heroes of the day. At other times, when the data doesn’t meet these assumptions, Logistic Regression or Naive Bayes might save the day instead.


Just like every superhero has its strengths and weaknesses, our heroes LDA and QDA too, have their own set of advantages and limitations. Remember, no hero is perfect, and understanding their limitations helps us know when to call upon them.

Advantages of LDA

  • Super Speed: LDA is super fast! It’s like the Flash of statistical classifiers. It can quickly analyze and classify large amounts of data.
  • Simple Boundaries: LDA constructs straight, simple boundaries, making it easier for us to understand. Think of it as building walls using only straight LEGO bricks.
  • Fewer Data, No Problem: Unlike its sibling QDA, LDA doesn’t need a lot of data to build its walls accurately. So, if we have limited data, LDA is our go-to superhero!

Limitations of LDA

  • Straight Line Limitation: LDA can only build straight walls. This limitation can make it challenging to separate data that is not linearly separable (like separating apples, oranges, and bananas using only straight walls).
  • Assumed Similarity: LDA assumes that all classes have the same variance, that is, each type of fruit is spread out the same way. But what if our oranges are more spread out than our apples? This assumption might make LDA less accurate.

Advantages of QDA

  • Flexible Boundaries: QDA is more flexible than LDA because it can build both straight and curved walls. So, if the data is not linearly separable, QDA comes to the rescue!
  • Unique Variance: Unlike LDA, QDA allows for each type of fruit (or class) to have its own unique spread. This makes QDA more adaptable to different types of data.

Limitations of QDA

  • Data Hungry: QDA requires more data to build its walls accurately. If we have limited data, QDA might not perform as well.
  • Complex Boundaries: The flexibility of QDA comes with a price. It can sometimes build overly complex boundaries when a simpler one would do. This is like using curved LEGO bricks when straight ones would work just fine. This could lead to overfitting, where our model becomes too tailored to our specific box of toys (data) and performs poorly when introduced to new toys (data).


Just as we’ve reached the end of a comic book, we’ve reached the conclusion of our journey with the superheroes of statistical classifiers, LDA, and QDA.

We started our adventure at the bustling fruit stand, where we were introduced to the concept of classification. From there, we traveled back in time to revisit old friends, Logistic Regression and Naive Bayes. We then met our superheroes, LDA and QDA, learning about their unique superpowers and how they use mathematical formulas to build walls that separate and classify our fruits (data).

We discovered that while LDA is fast and straightforward, it has the limitation of only being able to construct straight walls and assuming the same spread for all fruit types. On the other hand, QDA, with its ability to construct both straight and curved walls, provides us with more flexibility. However, it requires more data and can sometimes build overly complex walls.

Just as we choose our superheroes based on the situation, we choose between LDA and QDA based on our data. If we have simple, linearly separable data, LDA may be our hero of choice. But, when faced with more complex data, we might call upon QDA.

Remember, the key to understanding these concepts is not getting intimidated by the math behind them. Just like every superhero’s power can be explained, so can the formulas used by LDA and QDA.

QUIZ: Test Your Knowledge!

Share the Post:
Learn Data Science. Courses starting at $12.99.

Related Posts

© Let’s Data Science


Unlock AI & Data Science treasures. Log in!