Case 04 · Healthcare ML · Provis Technologies internship

Parkinson's Voice Classifier

Screening support from the voice — with the decision threshold left in the clinician's hands.

Role
Internship deliverable — feature analysis to deployed dashboard
Stack
Python · XGBoost · Scikit-Learn · Streamlit
Links
Code ↗

The problem

In screening, the two mistakes aren't equal: missing a real case costs far more than a false alarm. A single fixed cut-off hides that trade-off from the person who has to make the call.

What I built

  • An XGBoost classifier trained on 22 voice-derived acoustic features.
  • A Streamlit decision-support dashboard with adjustable decision thresholds.
  • Batch CSV scoring, feature-importance visualisation and exportable predictions.
  • Tuned specifically to cut false negatives — the costlier error in diagnosis.
Scoring flow
Voice features22 acoustic Batch CSV XGBoostclassifier Probability0 ─────── 1 Adjustable threshold→ screening flag Feature importance Export predictions Lower the threshold → fewer missed cases, more follow-ups.
22acoustic features
12%fewer false negatives after tuning
BatchCSV scoring + export
Livethreshold control
Next caseSakhiSign →