The problem
Up to 90% of people with Parkinson's disease develop vocal impairment — reduced loudness, breathiness, pitch instability — often years before the classic motor symptoms prompt a diagnosis. Those changes are measurable: jitter (pitch instability), shimmer (loudness instability), harmonics-to-noise ratio and nonlinear measures like PPE capture them numerically from a simple sustained "ahh". The UCI Parkinson's dataset packages 195 such recordings from 31 subjects with 22 precomputed biomarkers, making it an ideal teaching dataset for biomedical ML — small enough to run anywhere, methodologically rich enough to teach the field's central lesson: validate by subject, not by recording. This project trains an RBF SVM with leave-one-subject-out cross-validation, explains each prediction through its biomarker profile, and delivers a voice-test web demo. Screening-only limits are stated plainly throughout.
How it works
- The 195 UCI recordings' 22 precomputed vocal features are loaded with subject IDs and PD/healthy labels.
- Features are standardized with a scaler fit on the training fold only.
- An RBF-kernel SVM (C and gamma tuned by nested cross-validation) is trained; logistic regression and random forest serve as baselines.
- Validation uses leave-one-subject-out: 31 folds, each holding out all recordings of one subject — no speaker appears in both train and test of any fold.
- Accuracy, sensitivity, specificity and ROC-AUC are aggregated across folds; feature importance is read from the SVM weights and permutation analysis.
- In the web demo, a voice profile's 22 biomarkers are scaled identically and the saved SVM returns the risk score.
- Each biomarker is plotted against its healthy range so the prediction is explained feature by feature.
Tech stack:
- Python 3, scikit-learn (SVM)
- UCI Parkinson's dataset (Little et al., 2007)
- librosa / Parselmouth (feature theory)
- NumPy, Matplotlib, pandas
- Jupyter Notebook (training)
- HTML5 canvas + JavaScript (voice-test demo)
Dataset & model details
- Dataset: Parkinson's Disease dataset (UCI ML Repository, Little et al., 2007) — 195 sustained-vowel phonations from 31 subjects (23 with Parkinson's, 8 healthy), 22 vocal features per recording (jitter, shimmer, HNR, NHR, RPDE, DFA, PPE, spread1/2, D2, MDVP statistics).
- Task: Binary classification; input = 22 standardized vocal biomarkers, output = Parkinson's risk score.
- Model: SVM with RBF kernel (C=10, γ=0.01 tuned by nested CV), StandardScaler preprocessing.
- Metrics: Accuracy ~92% (design target for the built-to-order training run), sensitivity, specificity, ROC-AUC — all under leave-one-subject-out CV. No metric is claimed as measured until the training run is executed for the order.
| Parameter | Value |
|---|---|
| Input format | 22 vocal biomarkers from a sustained vowel |
| Subjects | 31 (23 PD, 8 healthy) · 195 recordings |
| Validation | Leave-one-subject-out, 31 folds |
| Model | SVM-RBF, C=10, γ=0.01 |
| Accuracy | ~92% LOSO (design target, not a measured claim) |
| Training time | Under 2 minutes on a laptop CPU (expected) |
| Inference | <10 ms per screening (expected) |
| Demo | Web app with waveform + biomarker display |
Project features
- [22 vocal biomarkers] Jitter, shimmer, HNR/NHR, RPDE, DFA, PPE, spread measures and MDVP statistics — each explained in plain language in the report.
- [Voice-test web demo] Simulated 5-second "ahh" capture with animated waveform, biomarker extraction display, risk score and per-feature healthy-range comparison.
- [Leave-one-subject-out validation] 31-fold CV by subject — the only honest validation when 195 recordings come from 31 people; random splits would leak speakers.
- [RBF SVM classifier] Tuned C and gamma via nested CV, benchmarked against logistic regression and random forest baselines.
- [Per-feature explanation] Every prediction is explained through its biomarker bars against healthy ranges, so the score is inspectable.
- [Full training notebook] Scaling, model selection, LOSO validation, ROC analysis and calibration in one reproducible notebook.
- [Screening report] The demo generates a structured screening summary with the mandatory not-a-diagnosis disclaimer.
What is included
- Complete training & evaluation Jupyter notebook
- Trained SVM model file with scaler and feature pipeline
- Voice-test web demo (capture simulation, biomarkers, risk score)
- LOSO metrics, ROC curves and biomarker-importance plots
- Project report PDF (background, vocal-biomarker theory, methodology, ethics)
- PPT presentation for final review
- Viva Q&A preparation document (SVM kernels, LOSO, jitter/shimmer/HNR, screening limits)
Limitations & prerequisites
- ~92% is a design target for the training run, stated honestly — the report documents the actual achieved figure.
- 31 subjects is a small cohort; generalization claims are bounded and the report says so.
- SCREENING AID ONLY: vocal biomarkers correlate with Parkinson's in research data but cannot diagnose it — not a medical device, never for clinical decisions.
- The demo simulates capture; the shipped build documents microphone integration and the sustained-vowel protocol.
- Age, colds and other voice disorders also shift these biomarkers — confounders the report discusses.
Frequently Asked Questions
Which dataset is used?
The UCI Parkinson's dataset (Little et al., 2007) — 195 sustained-vowel recordings from 31 subjects (23 with Parkinson's, 8 healthy), each with 22 precomputed vocal biomarkers.
What are jitter, shimmer and HNR?
Jitter measures cycle-to-cycle pitch instability, shimmer the loudness instability, and HNR (harmonics-to-noise ratio) how much breathy noise contaminates the voice — all elevated in Parkinsonian speech. The report explains each biomarker in plain language.
Why leave-one-subject-out validation?
195 recordings from 31 people means a random split would put the same speaker's voice in train and test — the model would learn speakers, not disease. LOSO holds out each subject entirely, the only honest validation here, and the report demonstrates the difference.
Can this diagnose Parkinson's?
No — and the project states this everywhere it matters. It is a screening research prototype: vocal biomarkers correlate with the disease but diagnosis requires a neurologist. The demo carries this disclaimer on every report.
Why an SVM instead of deep learning?
195 samples cannot train a neural network without severe overfitting. An RBF SVM is the right-capacity model for small biomedical datasets — choosing model complexity to match data size is itself a viva talking point.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and AI/ML programs. It teaches biomedical signal features, rigorous small-data validation and honest treatment of AI's limits in healthcare. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and AI & Machine Learning.
Components & software requirements
- Python 3, scikit-learn (SVM)
- UCI Parkinson's dataset (Little et al., 2007)
- librosa / Parselmouth (feature theory)
- NumPy, Matplotlib, pandas
- Jupyter Notebook (training)
- HTML5 canvas + JavaScript (voice-test demo)
Dataset & model details
- Dataset: Parkinson's Disease dataset (UCI ML Repository, Little et al., 2007) — 195 sustained-vowel phonations from 31 subjects (23 with Parkinson's, 8 healthy), 22 vocal features per recording (jitter, shimmer, HNR, NHR, RPDE, DFA, PPE, spread1/2, D2, MDVP statistics).
- Task: Binary classification; input = 22 standardized vocal biomarkers, output = Parkinson's risk score.
- Model: SVM with RBF kernel (C=10, γ=0.01 tuned by nested CV), StandardScaler preprocessing.
- Metrics: Accuracy ~92% (design target for the built-to-order training run), sensitivity, specificity, ROC-AUC — all under leave-one-subject-out CV. No metric is claimed as measured until the training run is executed for the order.
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.