A Flask app that predicts heart disease risk from 13 clinical measurements, using four models trained on the Cleveland Heart Disease dataset — Logistic Regression, Decision Tree, Random Forest, and a small neural network. Built as a deployment layer for a college machine learning project.
Results
303 patients, 165 with heart disease and 138 without, 80/20 train-test split.
Model Accuracy Precision Recall F1 ROC-AUC Logistic Regression 85.25% 87.10% 84.38% 85.71% 92.67% Random Forest 83.61% 84.38% 84.38% 84.38% 92.24% Decision Tree 81.97% 81.82% 84.38% 83.08% 84.27% Neural Network 78.69% 82.76% 75.00% 78.69% 86.53%
Logistic Regression is the best all-around performer, so it's the default model shown, but the dashboard lets you swap to any of the other three and compare.
What it does
You enter a patient's age, sex, chest pain type, resting blood pressure, cholesterol, and 8 other clinical values, and it:
Runs all four models and shows the top one's verdict and confidence, with the other three available to compare side by side
Flags any input values outside typical healthy ranges (elevated blood pressure, cholesterol, etc.) with plain-language explanations
Shows Random Forest's feature importances, and how this patient's key values compare to dataset averages for disease vs. no-disease cases
If models/ is missing any files, regenerate them first:
Note
This is an educational demo built for a college project, not a diagnostic tool. Predictions and recommendations shouldn't be treated as medical advice.