All work
Client work

ML spend-categorisation engine

Led the first time the firm ran this approach for a client: categorising a large spend dataset — roughly A$12B across five years — where only about 60–65% was reliably categorised to begin with. The result is a documented, repeatable pipeline now rolling out across the wider client base.

Impact
Cut a 1–1.5 month task to a single day's model run
Type
Client work

Approach

Built a one-vs-all binary classifier: for each spend category, the model trains with 1 = in-category and 0 = everything else. Engineered features on top of the text signal — including spend value and line count — to strengthen it, and explicitly handled class imbalance.

The Pareto split

The high-value head of spend (low volume, high signal) is reviewed and categorised manually for accuracy, while the ML model — built and trained over roughly five months — categorises the long tail. Tuned via hyperparameter search and validated with cross-validation.

Result

Cut a categorisation cycle that took an account manager around 1–1.5 months down to roughly a single day's model run, and established a scalable, documented pipeline now being adopted across clients and retrained as needed.

Stack

scikit-learnTF-IDF / embeddingsLogistic RegressionFeature engineeringCross-validation
Let's talk

Interested in work like this?

dhruvnirmal2111@gmail.com

Open to remote data & AI roles — Australia, India, and the Gulf / Singapore.