/ML-project

heart-disease analysis(Classification)

Primary LanguageJupyter Notebook

Heart-Disease Prediction

  • This notebook looks into using various python-based machine Learning and data science libraries in an attempt to build a machine learning model capable of predicting whether or not someone has heart Disease based on their medical attributes

  • Following steps for problem solving:

  1. Problem definition
  2. Data
  3. Evaluation
  4. features
  5. Modelling
  6. Experimentation

Problem definition

Given clinical parameters about a patient ,can we predict whether or not they have heart Disease ?

  • Features used for prediction and their brief explanation.
  1. age - age in years
  2. sex - (1 = male; 0 = female)
  3. cp - chest pain type
  • 0: Typical angina: chest pain related decrease blood supply to the heart
  • 1: Atypical angina: chest pain not related to heart
  • 2: Non-anginal pain: typically esophageal spasms (non heart related)
  • 3: Asymptomatic: chest pain not showing signs of disease
  1. trestbps - resting blood pressure (in mm Hg on admission to the hospital) anything above 130-140 is typically cause for concern
  2. chol - serum cholestoral in mg/dl
    • serum = LDL + HDL + .2
    • triglycerides above 200 is cause for concern
  3. fbs - (fasting blood sugar > 120 mg/dl) (1 = true; 0 = false)
    • '>126' mg/dL signals diabetes
  4. restecg - resting electrocardiographic results
    • 0: Nothing to note
    • 1: ST-T Wave abnormality can range from mild symptoms to severe problems signals non-normal heart beat
    • 2: Possible or definite left ventricular hypertrophy Enlarged heart's main pumping chamber
  5. thalach - maximum heart rate achieved
  6. exang - exercise induced angina (1 = yes; 0 = no)
  7. oldpeak - ST depression induced by exercise relative to rest looks at stress of heart during excercise unhealthy heart will stress more
  8. slope - the slope of the peak exercise ST segment
  • 0: Upsloping: better heart rate with excercise (uncommon)
  • 1: Flatsloping: minimal change (typical healthy heart)
  • 2: Downslopins: signs of unhealthy heart
  1. ca - number of major vessels (0-3) colored by flourosopy
  • colored vessel means the doctor can see the blood passing through
  • the more blood movement the better (no clots)
  1. thal - thalium stress result
  • 1,3: normal
  • 6: fixed defect: used to be defect but ok now
  • 7: reversable defect: no proper blood movement when excercising
  1. target - have disease or not (1=yes, 0=no) (= the predicted attribute)

Visulaising Data

image

image

Model Evaluation

we are going to try 3 different ML models for this classification problems.
  • Logistic Regression
  • K-Nearest Neighbours Classifier
  • Random Forest Classifier

image

Feature importance of data

image

Result

We are able to achieve more than 88% of accuracy using Logistic Regression in our Heart-Disease Analysis Classification Model

Deployment of model

The deployment script App.py is given in github. The final working model is deployed Heroku :: https://heart-disease-predictor-new.herokuapp.com/