NLP pipeline for classifying medical symptom descriptions into disease categories. Built as an extension of healthcare analytics work at Ayurnidaan (BITS Pilani incubated startup).
Raw symptom text → Preprocessing → TF-IDF (bigrams) → Classifier → Disease category
| Model | Accuracy | F1 (weighted) |
|---|---|---|
| Logistic Regression | ~0.98 | ~0.98 |
| Random Forest | ~0.97 | ~0.97 |
| Gradient Boosting | ~0.96 | ~0.96 |
pip install numpy scikit-learn matplotlib
python symptom_classifier.pyfrom symptom_classifier import predict_symptom, build_pipeline
pipeline = build_pipeline('LogisticRegression')
pipeline.fit(X_train, y_train)
result = predict_symptom("fever chills body ache", pipeline)
print(result['predicted']) # e.g. "flu"
print(result['confidence']) # e.g. 0.94- MIMIC-III clinical notes (requires credentialing)
- Symptom-Disease dataset on Kaggle
- MedQuAD medical Q&A dataset
Python, NLP, TF-IDF, Scikit-learn Pipeline, text classification, prediction API