Skip to content

stabgan/Linear-Discriminant-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Linear Discriminant Analysis (LDA)

Dimensionality reduction and multi-class classification on the UCI Wine dataset using Linear Discriminant Analysis.

What It Does

Reduces 13 chemical features of wine samples down to 2 linear discriminants using LDA, then trains a classifier to predict customer segments — with decision-boundary visualizations for both training and test sets.

Methodology

  1. Load the Wine dataset (178 samples, 13 features, 3 classes)
  2. 80/20 train/test split + standard feature scaling
  3. Apply LDA → project onto 2 discriminant components
  4. Train a classifier (Logistic Regression in Python, SVM in R)
  5. Evaluate with a confusion matrix + accuracy score
  6. Plot 2D decision boundaries for train and test sets

Dataset

Wine.csv — 178 samples across 3 customer segments, with 13 chemical analysis features (Alcohol, Malic Acid, Ash, Magnesium, Phenols, Flavanoids, etc.). Based on the UCI Wine dataset.

Quick Start

Python

pip install numpy matplotlib pandas scikit-learn
python lda.py

R

install.packages(c("caTools", "MASS", "e1071", "ElemStatLearn"))
source("lda.R")

🛠 Tech Stack

Tool Purpose
🐍 scikit-learn LDA, Logistic Regression, StandardScaler
📊 matplotlib Decision-boundary visualization
🧮 pandas / numpy Data loading and manipulation
📈 MASS (R) LDA implementation
🤖 e1071 (R) SVM classifier

⚠️ Known Issues

  • R: ElemStatLearn removed from CRAN — The ElemStatLearn package used for visualization in lda.R has been archived. Install from the CRAN archive or use an alternative plotting approach.

License

MIT — see LICENSE

Author

Kaustabh Ganguly (@stabgan)

About

We used LDA in this project to expand the capabilities of our Logistic Regression Classifier in both Python and R

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors