Reproducible ML pipelines

YouTube Sentiment Insights

Personal build, open source2026

An end-to-end sentiment classifier built the way production ML has to be built — versioned data, tracked experiments, a registered model, and an API at the end of it.

1
The problem

A model that only exists in a notebook cannot be rebuilt, compared, or shipped. The interesting work in ML is rarely the estimator — it is making the whole path from raw data to served prediction reproducible by someone who is not you.

2
How it works

Data and pipeline stages are versioned with DVC and parameterised from a single params.yaml. Experiments run as a deliberate ladder — baseline, then Bag-of-Words vs TF-IDF, then class-imbalance treatments (SMOTE, ADASYN, undersampling, class weights), then XGBoost with hyperparameter tuning — each tracked in MLflow. The winning run is registered as a model and served behind a Flask API.

3
What it proves

That an experiment can be re-run from a clean checkout and land on the same number, and that the gap between 'a notebook that scored well' and 'an endpoint someone can call' is a pipeline problem I know how to close.

Built with
Pipeline
DVCparams.yamlsetup.py
Tracking
MLflowmodel registrysignatures
Modelling
scikit-learnXGBoostTF-IDF / BoW
Imbalance
SMOTEADASYNclass weights
Serving
Flask
Next project

Bulk Mail Sender Bot

Losing hours to work an AI system could handle?

Tell me about the process. I'll tell you straight whether it's worth automating — no pitch, no obligation.

Book a call