Skip to content
Marko Ivanovski

Gut microbiome disease classification

Classifies individuals as healthy, Crohn's disease, ulcerative colitis or obese from gut microbiome taxonomy data.

category
academic
year
2025
status
completed
role
Sole developer
  • Python
  • XGBoost
  • scikit-learn

What it is

Data science coursework, and one of my favourite projects. Given the bacterial species found in a person's gut, the model predicts one of four labels: healthy, Crohn's disease, ulcerative colitis or obese.

The notebook works through exploration, log transforms, dropping species that correlate above 0.85, and scaling fitted on the training split only. Five models were compared: logistic regression, random forest, SVM, Gaussian naive Bayes and XGBoost. XGBoost did best, at 88.6% accuracy and 0.83 macro F1 before tuning, with random forest close behind, and both reached a ROC AUC above 0.94.

  • A four-class problem predicted from taxonomy data alone.
  • The full pipeline: exploration, preprocessing, feature engineering, then a comparison across models.
  • Random Forest and XGBoost came out ahead.

What I learnt

  1. Tree ensembles suit microbiome data, because they capture interactions across many features that the linear baseline missed.
  2. Tuning did not always help. Tuned XGBoost fell to 86.2% accuracy on the test split, below its untuned baseline.

What I would do next

Add pathway-level biological signals alongside the taxonomy profiles.

Try deep learning models and sharper feature selection, possibly toward a research paper.