A Machine Learning based Election Prediction System built using Python, Scikit-Learn, CatBoost, XGBoost, and Streamlit.
This project predicts the leading political party based on constituency and state-level election information using multiple machine learning classification algorithms.
- π Election Dataset Analysis
- π€ Multiple Machine Learning Models
- π Interactive Visualizations
- π§© Confusion Matrix Visualization
- π Real-Time Election Party Prediction
- π Streamlit Interactive Dashboard
- β‘ Model Accuracy Comparison
- π Classification Report Display
- Python
- Pandas
- NumPy
- Matplotlib
- Scikit-Learn
- CatBoost
- XGBoost
- Streamlit
The dataset contains:
| Column | Description |
|---|---|
| State/UT | State or Union Territory |
| Constituency | Election Constituency |
| Const. No. | Constituency Number |
| Leading Party | Winning Political Party |
| Trailing Party | Runner-Up Political Party |
| Margin | Winning Margin |
The project performs:
- Missing Value Handling
- Feature Selection
- Data Cleaning
- Categorical Encoding
- Numerical Standardization
- Pipeline-based Data Transformation
| Model | Purpose |
|---|---|
| RandomForestClassifier | Main Prediction Model |
| DecisionTreeClassifier | Baseline Model |
| GradientBoostingClassifier | Ensemble Boosting Model |
| CatBoostClassifier | Advanced Categorical ML Model |
| Model | Accuracy |
|---|---|
| Random Forest | ~58% |
| Gradient Boosting | ~58% |
| Decision Tree | ~56% |
| CatBoost | Comparable Performance |
Accuracy may vary slightly depending on train-test split.
The application includes:
- Interactive Prediction UI
- Dynamic State Selection
- Constituency-Based Prediction
- Dataset Overview Dashboard
- Model Accuracy Graph
- Constituency Distribution Graph
- Confusion Matrix Visualization
- Classification Report Table
- Election Prediction Interface
- ML Model Comparison
- Dataset Insights
- Interactive Visualizations
- Prediction Results
Election-Party-Predictor/
β
βββ app.py
βββ Model.py
βββ Election_Dataset.csv
βββ requirements.txt
βββ README.md
βββ predictions.csvgit clone https://github.com/your-username/Election-Party-Predictor.gitcd Election-Party-Predictorpip install -r requirements.txtstreamlit run app.pystreamlit
pandas
numpy
matplotlib
scikit-learn
catboost
xgboostDataset Loading
β
Data Cleaning
β
Feature Engineering
β
Train-Test Split
β
Preprocessing Pipeline
β
Model Training
β
Model Evaluation
β
Prediction System
β
Streamlit Deployment
The application predicts the most likely leading political party using:
- State/UT
- Constituency
- Constituency Number
as input features.
- Accuracy Score
- Error Rate
- Confusion Matrix
- Classification Report
This project demonstrates practical understanding of:
- Data Science Workflow
- Machine Learning Pipelines
- Feature Engineering
- Ensemble Learning
- Classification Algorithms
- Data Visualization
- Streamlit Deployment
- Model Evaluation
- Add Historical Election Data
- Add Demographic Features
- Add Vote Share Analysis
- Improve Prediction Accuracy
- Add Deep Learning Models
- Deploy on Streamlit Cloud
- Add Real-Time Analytics
If you like this project, consider giving it a β on GitHub.
This project is open-source and available under the MIT License.