Skip to content

Latest commit

 

History

History
102 lines (74 loc) · 4.63 KB

File metadata and controls

102 lines (74 loc) · 4.63 KB

Disease Outbreak Prediction using Machine Learning

This project leverages machine learning to predict the likelihood of disease outbreaks, specifically for Diabetes, Parkinson's disease, and Heart Attack. The backend of the application is built in Python, utilizing powerful machine learning algorithms to make predictions based on various health-related data. The user interface is created with Streamlit, allowing users to interact with the model seamlessly.

Table of Contents

Project Description

The main goal of this project is to predict the probability of three major diseases based on input health data. This can help healthcare professionals in early diagnosis and intervention. The diseases included in the model are:

  • Diabetes: A chronic disease that affects how the body processes blood sugar (glucose).
  • Parkinson’s Disease: A neurodegenerative disorder that affects movement control.
  • Heart Attack: A life-threatening condition resulting from the interruption of blood flow to the heart.

The prediction models are trained on historical health data and employ several features such as age, blood pressure, cholesterol levels, glucose levels, and more to generate accurate predictions.

Key Features

  • Predict the likelihood of a person developing Diabetes, Parkinson's disease, or having a Heart Attack.
  • User-friendly Streamlit interface to input health data and view predictions.
  • Visualize model results through graphs and charts.
  • Backend powered by Python, using popular machine learning libraries such as scikit-learn and TensorFlow.

Technologies Used

  • Python: The primary language for data preprocessing, model training, and backend logic.
  • Streamlit: A web framework to create an interactive user interface.
  • scikit-learn: For building the machine learning models.
  • Pandas & NumPy: For data manipulation and handling.
  • Matplotlib & Seaborn: For visualizing the data and model results.
  • TensorFlow/Keras: For deep learning models, if used in the project.
  • scikit-plot: For generating visualizations of model performance.

Installation

Prerequisites

Ensure you have Python 3.x installed on your machine. You will also need to install the following Python libraries:

  1. Clone the repository:

    git clone https://github.com/yourusername/disease-outbreak-prediction.git
    cd disease-outbreak-prediction

Create a virtual environment (optional but recommended):

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
Install dependencies:

```bash
pip install -r requirements.txt
This will install the required libraries like Streamlit, scikit-learn, pandas, etc.

###Usage
**Running the Application**
To launch the Streamlit app and start interacting with the model, run the following command:

```bash
streamlit run app.py
Once the app is running, open the browser and navigate to the displayed local URL, typically http://localhost:8501.

**Input Data**
The UI will prompt you to input relevant health parameters such as:

Age
Blood Pressure
Cholesterol
Glucose Levels
Heart Rate
Physical Activity
Family History (for specific diseases)
Once the data is input, click the "Predict" button to get the model's prediction of whether the individual is at risk of developing Diabetes, Parkinson's disease, or having a Heart Attack.

**Visualizing Results**
The model provides a prediction along with a probability score. You can also view visual representations of the data and prediction results (such as bar charts or probability distributions).

**Data Sources**
The models are trained on various public health datasets that provide historical data related to these diseases. Some of the notable sources include:

**Diabetes Dataset from Kaggle**
Parkinson’s Disease Classification Dataset
Heart Disease Dataset from UCI Machine Learning Repository

**Model Details**
The machine learning models used for predictions include a combination of:

Logistic Regression: For basic classification tasks.
Random Forest: For handling more complex relationships and improving accuracy.
Support Vector Machine (SVM): For high-dimensional data classification.
The model training process involves splitting the dataset into training and testing sets, tuning hyperparameters, and evaluating the model's performance using metrics such as accuracy, precision, recall, and F1 score.