agoel00 / HeartDiseasePredictionAPI

JSON API which returns predictions based on user input parameters using Scikit-learn and Flask.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Heart Disease Prediction API

Python License

Flask REST API which predicts probability of Coronary Heart Disease in a patient taking 9 parameters based on patient's history as input.

The API uses a Logistic Regression Model from scikit-learn trained on the Framingham Heart Study Dataset from Kaggle.

The model achieved a test accuracy of around 88%.

It is deployed on Heroku here.

View the Jupyter notebook here

/predict endpoint

  • Takes 9 paramteres as input

  • Returns a binary prediction (0 or 1) and probability as well.

    Sample query

      https://heartapi.herokuapp.com/predict?age=31&sex=1&cigs=5&chol=230&sBP=280&dia=0&dBP=90&gluc=87&hRate=84
    

    Sample output

    {
       "data":{
          "age":"31",
          "cigsPerDay":"5",
          "diaBP":"90",
          "diabetes":"0",
          "glucose":"87",
          "heartRate":"84",
          "sex":"1",
          "sysBP":"280",
          "totChol":"230"
       },
       "prediction":[
          1
       ],
       "probability":[
          [
             0.4587093009776524,
             0.5412906990223476
          ]
       ]
    }
    

/model endpoint

  • Returns the model details such as intercept and coefficients.

      https://heartapi.herokuapp.com/model
    

Running locally

  1. Clone the repository

        git clone https://github.com/agoel00/HeartDiseasePredictionAPI.git
     
       cd HeartDiseasePredictionAPI
  2. Install dependencies

        pip install requirements.txt
  3. Start the Flask server

        python3 app.py

A PWA which communicates with this API is deployed here

status

License

MIT

About

JSON API which returns predictions based on user input parameters using Scikit-learn and Flask.


Languages

Language:Jupyter Notebook 99.8%Language:Python 0.2%