Folio — EditionSakina Saifuddin© 2026
2021

A journey through code, data, and intelligent systems.

Folio — EditionSakina Saifuddin© 2026
SS
01Intro02Work03What I Build04Achievements05Experience06Expertise07Contact
Project Books
03 · MACHINE LEARNING · TIME SERIES · RETAIL

AI-Driven Retail Inventory Forecasting & Autonomous Inventory Optimization

Overview

Built a complete store-sales forecasting pipeline over more than 3 million records, engineered time-series features, compared three machine-learning models, and selected LightGBM as the best model on unseen data.

Details
Key result0.4516 — best final test RMSE · LightGBM
Links
GitHub Open technical report
Stack
PythonPandasScikit-learnLightGBMRandom ForestLinear RegressionTimeSeriesSplitFeature Engineering
3.05M+merged sales rows
104model predictors
5 foldstime-aware validation
0.4516best test RMSE
Next projectGrant Financial Analytics & Reporting Dashboards →
LightGBM achieved the lowest test RMSE on the unseen holdout set.
Daily and monthly sales show trend changes, spikes, and seasonality that the forecasting features needed to capture.
Lag and rolling features capture recent demand while the time-aware setup avoids using future information.
Read the full technical report

Scroll left or right through the complete report. The most important pages include a plain-English caption underneath so a recruiter can follow the project without needing a machine-learning background.

Technical report cover for the store-sales forecasting project.
A page from the full technical report. Scroll left or right to continue through the project.
A page from the full technical report. Scroll left or right to continue through the project.
The raw sales target is extremely right-skewed, so I used log(1 + sales) to reduce the effect of extreme values.
A page from the full technical report. Scroll left or right to continue through the project.
Daily and monthly plots show spikes, seasonality, and changing demand over time. That is why the model needed time-aware features instead of a simple static regression.
Sales differ strongly by store and product family, showing that location and category information are important predictors.
Promotion days have much higher average sales than non-promotion days, so promotion information was kept as a key model feature.
I cleaned missing values and created calendar and lag features so the models could learn weekly, monthly, and recent-demand patterns.
Rolling averages were shifted by one day to avoid using today's answer to predict today. The final model-ready data had over 3 million rows and 104 predictors.
A page from the full technical report. Scroll left or right to continue through the project.
A page from the full technical report. Scroll left or right to continue through the project.
A page from the full technical report. Scroll left or right to continue through the project.
Five time-ordered validation folds compare Linear Regression, Random Forest, and LightGBM without leaking future dates into training.
A page from the full technical report. Scroll left or right to continue through the project.
On the unseen holdout set, LightGBM had the lowest RMSE at 0.4516, followed by Random Forest at 0.4845 and Linear Regression at 1.3541.
A page from the full technical report. Scroll left or right to continue through the project.
Predictions were converted back to the original sales scale so the model output could be read as real sales values.
A page from the full technical report. Scroll left or right to continue through the project.
A page from the full technical report. Scroll left or right to continue through the project.
Key feature-engineering code for missing-value handling, calendar variables, lag features, and rolling averages.