---
title: "Aditya Dandia (@adityand) | Hashnode"
description: "ML engineer in progress. Building from scratch. Read the latest articles by Aditya Dandia on Hashnode."
url: "https://hashnode.com/@adityand"
---

@adityand

# Aditya Dandia

@adityand · Bengaluru, India · Joined March 2026

ML engineer in progress. Building from scratch.

[Website](https://adityandandia.github.io/)

### [Episode 17: Phase 6: Final Evaluation & Series Finale](https://adityand.hashnode.dev/episode-17-phase-6-final-evaluation-series-finale?utm_source=hashnode&utm_medium=feed)

Act 1 — The Full Picture Five phases in, eight models trained, one question left: which model do you actually deploy, and can it explain its decisions? The full comparison table tells the first part o

5 min read · [adityand.hashnode.dev](https://adityand.hashnode.dev/episode-17-phase-6-final-evaluation-series-finale?utm_source=hashnode&utm_medium=feed)

[Apr 27](https://hashnode.com/posts/episode-17-phase-6-final-evaluation-series-finale/69ef59b8330a1ad7f7dc480d)

### [Episode 16: Phase 5: LightGBM Didn't Win the Way I Expected. It Won Differently.](https://adityand.hashnode.dev/episode-16-phase-5-lightgbm-didn-t-win-the-way-i-expected-it-won-differently?utm_source=hashnode&utm_medium=feed)

Act 1 — The Setup Phase 4 ended with LR + SMOTE as the model to beat. Churn recall of 0.80. ROC-AUC of 0.839. A logistic regression — the simplest model in the toolkit — holding the top spot after fou

3 min read · [adityand.hashnode.dev](https://adityand.hashnode.dev/episode-16-phase-5-lightgbm-didn-t-win-the-way-i-expected-it-won-differently?utm_source=hashnode&utm_medium=feed)

[Apr 26](https://hashnode.com/posts/episode-16-phase-5-lightgbm-didn-t-win-the-way-i-expected-it-won-differently/69ee04a63d6a492cddf9d04f)

### [Episode 15 — Phase 4: Class Imbalance](https://adityand.hashnode.dev/episode-15-phase-4-class-imbalance?utm_source=hashnode&utm_medium=feed)

Act 1 — The Problem With Getting 81% Right Phase 3 ended with an uncomfortable truth. Logistic Regression scored 81% accuracy and an ROC-AUC of 0.842. On paper, that looks good. But it was missing 44%

3 min read · [adityand.hashnode.dev](https://adityand.hashnode.dev/episode-15-phase-4-class-imbalance?utm_source=hashnode&utm_medium=feed)

[Apr 26](https://hashnode.com/posts/episode-15-phase-4-class-imbalance/69ee04163d6a492cddf96d4a)

### [Episode 14: Phase 3: Baseline Models](https://adityand.hashnode.dev/episode-14-phase-3-baseline-models?utm_source=hashnode&utm_medium=feed)

Title: I Ran Three Baseline Models on Churn Data. The Simplest One Won. Act 1 — The Setup Phase 2 left me with a clean preprocessing pipeline. A ColumnTransformer that handles three feature types, a

6 min read · [adityand.hashnode.dev](https://adityand.hashnode.dev/episode-14-phase-3-baseline-models?utm_source=hashnode&utm_medium=feed)

[Apr 26](https://hashnode.com/posts/episode-14-phase-3-baseline-models/69ee02603d6a492cddf82c14)

### [Episode 13: Phase 2: The Preprocessing Pipeline](https://adityand.hashnode.dev/episode-13-phase-2-the-preprocessing-pipeline?utm_source=hashnode&utm_medium=feed)

Act 1 — The Problem With Raw Data Raw data is a mess. Strings where there should be numbers. Categories with three possible values mixed alongside categories with seven. Numerical features on complete

3 min read · [adityand.hashnode.dev](https://adityand.hashnode.dev/episode-13-phase-2-the-preprocessing-pipeline?utm_source=hashnode&utm_medium=feed)

[Apr 26](https://hashnode.com/posts/episode-13-phase-2-the-preprocessing-pipeline/69ee01033d6a492cddf7154e)
