A Primer to Framing Business Problems for Machine Learning

A stakeholder comes to your desk. They’re excited. “We need to use AI,” they say, “to improve customer retention.” You nod, open your editor, and you start thinking. Should I use XGBoost? Or maybe a neural network? How will I set up the pipeline? Stop. Right there. This is the single biggest mistake many of us make when we’re starting out: we jump straight to thinking about solutions and algorithms. ...

June 17, 2025 · 7 min · Shivam Chhuneja

Why ARIMA and SARIMA Still Matter: A Technical Guide to Time Series Forecasting

Deep Learning Gets the Spotlight, But Time Series Still Solves Real Problems In the machine learning landscape today, deep learning models - transformers, LSTMs, and other neural networks steal the show. They’re impressive, powerful, celebrated and make you feel smart too when you use them. However, when it comes to forecasting business metrics like sales, demand, or inventory, deep learning isn’t always the answer. Traditional time series models, especially ARIMA (AutoRegressive Integrated Moving Average) and its seasonal extension SARIMA, are some of the most effective and interpretable methods for forecasting structured temporal data. ...

June 16, 2025 · 8 min · Shivam Chhuneja

22 Lessons from 1 year in Data Science and Machine Learning

It’s been a year in data science and machine learning. Okay, I lied. Technically a full year and a few months since I officially splooted (wanted to show off my extensive vocabulary) into the world of data science and machine learning with my master’s program. In late 2023 I started learning data science through a Udemy course and in January of 2024 I gave up. Well, not exactly per say. ...

May 28, 2025 · 53 min · Shivam Chhuneja

Reducing Churn in E-Commerce: My End-to-End Capstone Project in Predictive Modeling

Customer churn isn’t just a marketing problem - it’s a business survival issue. In competitive industries like e-commerce, losing one customer often means losing several revenue streams, especially when one account can represent multiple users. This post is a breakdown of my churn prediction capstone project for the postgraduate data science program at UT Austin - also tied to my master’s in data science at Deakin U. The project was closed-source, so I can’t release the full notebook, but I’ll walk you through everything I did including code snippets, results, charts, what I learned, and where this project fits in my larger journey into machine learning and MLOps. ...

May 27, 2025 · 5 min · Shivam Chhuneja

Day 5–8: Fine-Tuning AI Models, Learning MLOps, and Structuring My Year of Projects

It’s been a few days since I posted an update here. Not because I wasn’t learning - in fact, the opposite. I was working through a mix of things, from structuring my year-long learning roadmap to actually fine-tuning large language models for the first time. Why I Wasn’t Posting Daily Simple: I needed to zoom out a bit. I took a couple of days to sketch out what I want to build in the next few months — not just random toy apps, but meaningful projects that actually challenge me to grow. ...

May 21, 2025 · 3 min · Shivam Chhuneja

Day 4 of Learning: Switching Between Golang and Deep Learning

It’s Day 4, and today was a little different - not heavy on code, but still a strong day of learning. I’m trying to balance two learning paths right now: backend fundamentals with Go and ML + deep learning using PyTorch. Wrapping My Head Around Pointers and Structs in Go Most of today’s Go time was spent clarifying how data is passed and accessed when using pointers and structs. type User struct { FirstName string LastName string BirthDate string createdAt time.Time } func Struct_fn() { FirstName, _ := helpers.StrUserInput("Please enter your first name: ") LastName, _ := helpers.StrUserInput("Please enter your last name: ") BirthDate, _ := helpers.StrUserInput("Please enter your birthdate (MM/DD/YYYY): ") appUser := User{ FirstName: FirstName, LastName: LastName, BirthDate: BirthDate, createdAt: time.Now(), } outputsUserDetails(&appUser) } func outputsUserDetails(u *User) { fmt.Println(u.FirstName, u.LastName, u.BirthDate) } func (u *User) ClearUserName() { u.FirstName = "" u.LastName = "" } Even after completing the basics, I had to go back to ChatGPT, asking follow-up questions like: ...

May 16, 2025 · 4 min · Shivam Chhuneja