An AI-powered disease prediction system that implements predictive diagnosis models for multiple diseases using data munging, feature selection, model training, and accuracy calculation. This project validates and improves existing methods in the disease diagnosis pipeline.
- Overview
- Features
- Project Structure
- Diseases Covered
- Methodology
- Technologies Used
- Installation & Setup
- Usage
- Datasets
- Results
- Contributors
- License
This project implements an AI-based predictive diagnosis system focusing on improving key aspects of the disease prediction pipeline:
- Data Munging - Replacing missing values using k-nearest neighbors (KNN) instead of mean substitution to reduce bias
- Feature Selection - Using simulated annealing algorithm with adaptive p-value thresholds
- Model Training - Training predictive models on medical datasets
- Accuracy Evaluation - Comprehensive cross-validation and accuracy calculation
- Multi-disease prediction support (Breast Cancer, Heart Disease, Diabetes)
- KNN-based data imputation for handling missing values
- Simulated annealing for optimized feature selection
- Adaptive p-value significance thresholds
- Data augmentation techniques (noise addition, scaling)
- Cross-validation support
- MySQL database integration
- Comprehensive result visualization with graphs
AI-Disease-Prediction-system/
├── BreastCancer/ # Breast cancer dataset files
├── BreastCancerPrediction/ # Breast cancer prediction module (Maven)
├── Diabetes/ # Diabetes dataset files
├── HeartDiseaseData/ # Heart disease dataset files
├── HeartDiseasePrediction/ # Heart disease prediction module (Maven)
├── Presentation/ # Project presentation files
├── Project Report/ # Detailed project report
├── Results - Graphs/ # Result visualizations and graphs
├── commons-math3-*.jar # Apache Commons Math library
├── mysql-connector-java-*.jar # MySQL JDBC driver
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # Project documentation
| Disease | Dataset Source | Prediction Module |
|---|---|---|
| Breast Cancer | Wisconsin Breast Cancer Dataset | BreastCancerPrediction.java |
| Heart Disease | Cleveland & Hungarian Heart Disease Datasets | HeartDiseasePrediction.java |
| Diabetes | Pima Indians Diabetes Dataset | Diabetes/ folder |
- Replaced mean imputation with k-nearest neighbors (KNN) method
- Reduced bias introduced by majority-class substitution
- Implemented simulated annealing algorithm for optimal feature selection
- Adaptive p-value thresholds within configurable upper and lower bounds
- Configurable initial temperature and cooling rate parameters
- 90/10 train-test split method
- Cross-validation results provided throughout the report
- Accuracy comparison across different feature sets
- Noise addition techniques
- Data scaling methods
- Improved dataset diversity
- Programming Language: Java
- Build Tools: Maven, Apache Ant
- Database: MySQL
- Libraries:
- Apache Commons Math 3.x
- MySQL Connector/J 8.0
- IDE: NetBeans
- Version Control: Git & GitHub
- Java Development Kit (JDK) 8 or higher
- MySQL Server (local installation)
- Maven (for prediction modules)
- Apache Ant (for main project)
- NetBeans IDE (recommended)
-
Clone the repository:
git clone https://github.com/code-divyu/AI-Disease-Prediction-system.git cd AI-Disease-Prediction-system -
Configure MySQL Database:
- Open
DBConnection.javain bothBreastCancerPrediction/andHeartDiseasePrediction/folders - Update the MySQL username and password:
String username = "root"; // Change to your MySQL username String password = ""; // Change to your MySQL password
- Open
-
Build the project:
- For Maven modules:
cd BreastCancerPrediction mvn clean install - For the main project:
ant build
- For Maven modules:
-
Breast Cancer Prediction:
cd BreastCancerPrediction java -cp target/classes com.mycompany.breastcancer.BreastCancerPrediction -
Heart Disease Prediction:
cd HeartDiseasePrediction java -cp target/classes com.mycompany.heartdisease.HeartDiseasePrediction
The main functions in each program do not execute all functionalities in sequence by default. Uncomment specific function calls to run individual modules as needed.
- Source: UCI Machine Learning Repository - Wisconsin Breast Cancer Dataset
- Location:
BreastCancer/folder - Files:
breast-cancer-wisconsin.data,wdcb.data,Index
- Source: UCI Machine Learning Repository - Heart Disease Datasets
- Location:
HeartDiseaseData/folder - Files:
processed.cleveland.data,hungarian.data,heart-disease.names
- Source: UCI Machine Learning Repository - Pima Indians Diabetes Dataset
- Location:
Diabetes/folder
Result visualizations and graphs are available in the Results - Graphs/ folder. The project report contains detailed accuracy metrics, cross-validation results, and comparative analysis of different methods.
- Divyanshu (@code-divyu)
This project is open-source and available under the MIT License.
Note: This project is intended for educational and research purposes. It should not be used as a substitute for professional medical diagnosis.