Skip to main content

Election Data Classification Project – End-to-End Analysis


Problem Definition

The objective of this project is to predict voter preference (Labour vs Conservative) using demographic, economic perception, political leadership ratings, and political awareness variables.

This is a binary classification problem, where the target variable is:

  • vote_Labour (1 = Labour, 0 = Conservative)

The analysis aims to:

  • Understand data structure and distributions

  • Identify relationships between predictors and voting behavior

  • Build and compare multiple classification models

  • Select the best model based on performance metric

Dataset Overview

  • Rows: 1,525 voters

  • Columns: 9 features + 1 target

  • Data Types:

    • Numerical: Age, economic conditions, leader ratings, political knowledge

    • Categorical: Vote, Gender

  • Missing Values: None

  • Duplicates: 8 (not materially impactful)

Target Variable Distribution

  • Labour voters: ~70%

  • Conservative voters: ~30%

➡️ Dataset is moderately imbalanced, which makes recall and AUC important evaluation metrics in addition to accuracy.


Univariate Analysis – Key Observations

Age

  • Minimum age: 24

  • Average age: ~54

  • Maximum age: 93

  • Distribution slightly right-skewed, indicating more middle-aged and senior voters.

Economic Conditions

  • Most voters rate national and household economic conditions between 3–4.

  • Suggests generally neutral to positive economic sentiment.

Leadership Ratings

  • Blair ratings skew higher than Hague, indicating stronger preference for Blair.

  • Leadership perception shows potential influence on voting behavior.

Political Knowledge

  • Majority fall in medium knowledge categories (1–2).

  • Very few voters have extremely high political awareness.

Gender

  • Slightly more females (53%) than males (47).

  • Gender alone does not strongly separate voting behavior.


Multivariate & Bivariate Analysis

Correlation Analysis

  • Moderate correlations observed between:

    • Economic household & national conditions

    • Leadership ratings and vote choice

  • No strong multicollinearity detected.

Vote-Wise Distribution Insights

  • Labour voters generally:

    • Rate Blair higher

    • Show slightly better economic sentiment

    • Have marginally higher political knowledge

Visual Techniques Used

  • Violin plots (vote vs numeric variables)

  • Pair plots for interaction patterns

  • Heatmaps for correlation

  • Strip plots to capture density and overlap

➡️ These patterns indicate that economic perception and leadership ratings are key predictors.


Data Preprocessing

  • Dropped irrelevant ID column

  • Converted categorical variables using one-hot encoding

  • Applied Min-Max scaling to numerical variables

  • Train-test split: 70% training / 30% testing


Model Building & Evaluation

Evaluation Metrics Chosen

  • Accuracy: Overall correctness

  • Recall: Important due to class imbalance

  • F1-Score: Balance between precision and recall

  • ROC-AUC: Measures discrimination capability

Model Performance Summary (Test Data)

ModelAccuracyAUC
Naive Bayes0.830.885
Logistic Regression0.820.883
KNN0.820.864
AdaBoost0.820.879
Bagging0.800.878
Random Forest0.820.888
Gradient Boosting0.830.904
Decision Tree0.760.732

🏆 Best Model: Gradient Boosting

Why Gradient Boosting?

  • Highest ROC-AUC (0.904) on test data

  • Strong balance between bias and variance

  • Good generalization (no overfitting)

  • Consistent recall for Labour voters

Interpretation

Gradient Boosting effectively captures non-linear interactions between:

  • Economic sentiment

  • Leadership perception

  • Political awareness


Model Improvement (Bagging & Boosting)

  • Hyperparameter tuning applied to Bagging:

    • Tree depth

    • Minimum samples per leaf

    • Feature sampling

  • Result:

    • Slight improvement in recall

    • No significant test accuracy gain

  • Boosting models showed better learning efficiency than Bagging.

➡️ Boosting proved more suitable for this dataset.


🧠 Key Business & Analytical Insights

  1. Leadership perception (Blair vs Hague) strongly influences vote choice

  2. Economic outlook at household level matters more than national perception

  3. Political knowledge improves prediction confidence

  4. Ensemble models outperform single classifiers

  5. Accuracy alone is insufficient—AUC and recall are critical


🛠️ Tools & Skills Demonstrated

Languages & Libraries

  • Python (Pandas, NumPy, Scikit-learn)

  • Matplotlib, Seaborn

Techniques

  • EDA & visualization

  • Feature scaling & encoding

  • Classification modeling

  • ROC-AUC analysis

  • Ensemble learning (Bagging, Boosting)

Final Recommendation

For real-world voter prediction systems:

  • Use Gradient Boosting for deployment

  • Monitor AUC and recall, not just accuracy

  • Regularly retrain as political sentiment shifts



















Comments

Popular posts from this blog

Power BI Sales & Inventory Forecasting Project (SARIMA)

Project Overview In this project, I built an end-to-end Business Analytics & Data Science solution using SQL, Power BI, and Python to: Analyze historical sales, profit, discounts, and units sold Build an Executive Summary Dashboard for leadership Forecast next 3 months of Sales & Units Sold Support inventory planning and business decision-making This project simulates a real-world eCommerce / Retail analytics use case , combining ETL, BI reporting, and predictive modeling in a single workflow. Business Objective Primary Goals Provide leadership with a single-source executive dashboard Identify sales, profit, and regional performance trends Predict future demand (Sales & Units Sold) for: Inventory planning Revenue forecasting Procurement & supply-chain readiness Key Questions Answered How are sales and profits trending over time? Which regions and segments drive the most value? What will be the expected sales & unit demand for the next 3 months? Architecture ...

Data Analysis and Visualization with Matplotlib and Seaborn | TOP 10 code snippets for practice

Data visualization is an essential aspect of data analysis. It enables us to better understand the underlying patterns, trends, and insights within a dataset. Two of the most popular Python libraries for data visualization are Matplotlib and Seaborn . Both libraries are highly powerful, and they can be used to create a wide variety of plots to help researchers, analysts, and data scientists present data visually. In this article, we will discuss the basics of both libraries, followed by the top 10 most used code snippets for visualization. We'll also provide links to free resources and documentation to help you dive deeper into these libraries. Matplotlib and Seaborn: A Quick Overview Matplotlib Matplotlib is a low-level plotting library in Python. It allows you to create static, animated, and interactive plots. It provides a lot of flexibility but may require more code to create complex plots compared to Seaborn. Matplotlib is especially useful when you need full control ove...