| --- |
| language: en |
| license: mit |
| library_name: scikit-learn |
| pipeline_tag: tabular-classification |
| tags: |
| - healthcare |
| - parkinsons-disease |
| - random-forest |
| - multimodal |
| - machine-learning |
| - medical-ai |
| - scikit-learn |
| - hog |
| - speech-analysis |
| --- |
| |
| # Multimodal Parkinson's Disease Detection using Random Forest |
|
|
| ## Overview |
|
|
| This repository provides a machine learning model for Parkinson's Disease detection using a multimodal approach that combines speech-based acoustic biomarkers and hand-drawn image features. |
|
|
| The model integrates clinically relevant voice features with Histogram of Oriented Gradients (HOG) extracted from spiral and wave drawings to improve diagnostic performance. |
|
|
| The classifier is a Grid Search optimized Random Forest model trained on fused multimodal features. |
|
|
| --- |
|
|
| ## System Architecture |
|
|
| ``` |
| Voice Recording |
| β |
| βΌ |
| Voice Feature Extraction |
| β |
| ββββββββββββββββ |
| β β |
| βΌ βΌ |
| Drawing Image HOG Feature Extraction |
| β β |
| ββββββββ¬ββββββββ |
| βΌ |
| Feature Concatenation |
| βΌ |
| Random Forest (Grid Search) |
| βΌ |
| Parkinson Prediction |
| ``` |
|
|
| --- |
|
|
| ## Problem Statement |
|
|
| Parkinson's Disease is a progressive neurological disorder where early diagnosis is essential for effective treatment. |
|
|
| Traditional diagnosis often depends on clinical examination. This project demonstrates how machine learning can assist clinicians by analyzing multiple patient modalities simultaneously. |
|
|
| --- |
|
|
| ## Model Details |
|
|
| | Property | Value | |
| |----------|-------| |
| | Model | Random Forest Classifier | |
| | Optimization | Grid Search CV | |
| | Task | Binary Classification | |
| | Framework | Scikit-learn | |
| | Input | Voice + Drawing Features | |
| | Output | Healthy / Parkinson's Disease | |
|
|
| --- |
|
|
| ## Dataset |
|
|
| ### Voice Dataset |
|
|
| - Source: UCI Parkinson's Dataset |
| - Samples: 195 |
| - Parkinson's: 147 |
| - Healthy: 48 |
|
|
| ### Drawing Dataset |
|
|
| Spiral and Wave Drawing Dataset |
|
|
| - Total Images: 207 |
| - Training Images: 147 |
| - Testing Images: 60 |
|
|
| ### Multimodal Dataset |
|
|
| Voice and drawing features were combined into a single feature vector after preprocessing and class balancing using Random Oversampling / SMOTE. |
|
|
| --- |
|
|
| ## Input Features |
|
|
| ### Voice Features |
|
|
| - Fundamental Frequency (Fo) |
| - Highest Frequency (Fhi) |
| - Lowest Frequency (Flo) |
| - Jitter |
| - Shimmer |
| - NHR |
| - HNR |
| - RPDE |
| - DFA |
|
|
| ### Drawing Features |
|
|
| Histogram of Oriented Gradients (HOG) |
|
|
| Preprocessing includes: |
|
|
| - Grayscale conversion |
| - Image resizing (250Γ250) |
| - Otsu Thresholding |
| - HOG Feature Extraction |
|
|
| --- |
|
|
| ## Feature Fusion |
|
|
| The multimodal feature vector is generated by concatenating the processed voice features and HOG image descriptors. |
|
|
| ```python |
| model_input = np.concatenate((voice_features, img_features), axis=1) |
| ``` |
|
|
| --- |
|
|
| ## Performance |
|
|
| | Metric | Score | |
| |---------|-------| |
| | Accuracy | 92.73% | |
| | Precision | 100.00% | |
| | Recall | 90.70% | |
| | F1 Score | 95.12% | |
|
|
| ### Confusion Matrix |
|
|
| | | Predicted Healthy | Predicted Parkinson's | |
| |---|---:|---:| |
| | Actual Healthy | 12 | 0 | |
| | Actual Parkinson's | 4 | 39 | |
|
|
| --- |
|
|
| ## Installation |
|
|
| ```bash |
| git clone https://github.com/yourusername/multimodal-parkinsons-random-forest.git |
| |
| cd multimodal-parkinsons-random-forest |
| |
| pip install -r requirements.txt |
| ``` |
|
|
| --- |
|
|
| ## Repository Structure |
|
|
| ``` |
| multimodal-parkinsons-random-forest/ |
| |
| βββ README.md |
| βββ parkinson_multimodal_random_forest.pkl |
| βββ requirements.txt |
| βββ LICENSE |
| βββ src/ |
| βββ examples/ |
| βββ images/ |
| ``` |
|
|
| --- |
|
|
| ## Intended Use |
|
|
| This model is intended for: |
|
|
| - Educational purposes |
| - Academic research |
| - Machine Learning experimentation |
| - Healthcare AI demonstrations |
|
|
| It is **not intended for clinical diagnosis** or medical decision-making. |
|
|
| --- |
|
|
| ## Limitations |
|
|
| - Dataset size is relatively small. |
| - Performance depends on the quality of voice recordings and drawing images. |
| - The model has not been clinically validated. |
| - Predictions should not replace professional medical evaluation. |
|
|
| --- |
|
|
| ## Ethical Considerations |
|
|
| This project is developed solely for research and educational purposes. |
|
|
| Medical AI systems should always be validated by healthcare professionals before being used in real-world clinical settings. |
|
|
| --- |
|
|
| ## License |
|
|
| MIT License |
|
|
| --- |
|
|
| ## Author |
|
|
| **Sarthak.** |
|
|
| AI/ML Engineer |
|
|
| Specializing in Machine Learning, Computer Vision, NLP, LLMs, and Generative AI. |