This project uses voters' prioritization of political issues to predict their 2016 Presidential vote choice.
I use likert scale ratings of issue importance to predict an individual's 2016 vote. The data comes from a bipartisan foundation, the Democracy Fund, and uses complex survey design to represent the U.S. registered voter population.
- CSS
- Flask
- Jupyter
- Heroku
- HTML
- Matplotlib
- NumPy
- pandas
- pickle
- Python
- random
- Regular expressions
- scikit-learn
- seaborn
- SMOTE (Synthetic Minority Oversampling Technique)
- weightedcalcs
-
Clone this repo (for help see this tutorial).
-
Raw Data is kept here
-
Data dictionary and description of survey methodology can be found here
-
Notebooks are kept here:
0 - Topic Selection notebook is kept here
1 - Preprocessing notebook is kept here
2 - Exploration notebook is kept here
3 - Model selection notebook is kept here -
Source code is kept here
-
Repo for Flask web app can be found here
Cross-Industry Standard Process for Data Mining (CRISP-DM)
- Business understanding: Research political campaign data and predictive election models.
- Data understanding: Explore and visualize Voter Study Group data. Read reports that have been written by others using this dataset.
- Data preparation: Eliminate unnecessary features then convert needed features to dummy variables. Use SMOTE to oversample minority class.
- Modeling: Compare Random Forest, Logistic Regression, Support Vector Machines, K-Nearest Neighbors.
- Evaluation: Create custom metric and evaluate multiple models with those metrics, iteratively. Use grid search and cross validation to tune parameters.
- Deployment: Deploy web app to heroku using Python, Flask, HTML/CSS.
- Alyssa Liguori, Alyssa.Liguori@protonmail.com
