File size: 4,482 Bytes
1872b08
65d9b24
1872b08
65d9b24
 
 
 
 
 
 
 
 
 
 
 
1872b08
65d9b24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
---
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.