سال ۹۷، در یک شرکت شکلاتی ، هر روز وارد انبار میشدم و حس میکردم یک حقیقت ناشناخته آنجا پنهان شده؛
نه فقط پالتهای شکلات تلخ که خاک میخوردند،
نه فقط بستههای شکلات شیری که همیشه کم میآمدند؛
بلکه یک ریتم پنهان در دل دادهها…
چیزی که همه میدیدند، اما هیچکس نمیفهمید.
ما ۳۰۰ SKU داشتیم و یک اکسل که پیشبینیهایش هر ماه دستکم ۲۵ درصد خطا داشت.
خط تولید میایستاد، انبار پر میشد، جلسه پشت جلسه…
و هر بار همه یک چیز را میپرسیدند:
"چرا پیشبینیهامون اشتباهه؟"
من حس میکردم جواب این سؤال در فرمولها نیست.
در خود زندگی مردم ایران بود—در تقویم، فرهنگ، مراسم، ماهها، رفتارهای خرید.
ولی آن روزها هنوز نمیدانستم چطور باید این ریتم را کشف کنم.
جرقه اما همانجا زده شد:
اگر بتوانم فروش را از دل این ریتم پیدا کنم، میتوانم تولید را نجات بدهم.
اولین تلاش: دویدن قبل از راه رفتن
اولین مدل جدیام را با چند فیچر ساده ساختم.
هیجان داشتم.
فکر میکردم «این همون لحظه موفقیته».
اما دو اشتباه اساسی کردم:
تاریخ میلادی استفاده کردم
تقویم را خام نگه داشتم
و مهمتر از همه: نفهمیده بودم فرهنگ ایران با تقویم غربی قابل مدلسازی نیست
محرم کِی شروع میشود؟
رمضان چگونه جابهجا میشود؟
تعطیلات خرداد هر سال چه روزی میافتد؟
نوروز چه اثری روی خرید دارد؟
پرفروشترین روزهای مواد غذایی کِی هستند؟
یک پنجشنبه تعطیلشده چه اثری روی خرید آخر هفته دارد؟
هیچکدام در تاریخ میلادی استاندارد قابل تشخیص نبود.
خروجی مدل؟
MAPE = 25٪
افتضاح.
با خودم گفتم:
«شاید اونایی که میگفتن دیتا ساینس الکیه… راست میگفتن.»
لپتاپ را بستم.
ولی صداش توی ذهنم موند:
"اینجا یه چیز بیشتری هست… هنوز کشفش نکردی."
بازگشت در سکوت شب — و ملاقات با دنیای Kaggle
یک شب ساعت ۳ صبح، دقیقاً همان شبی که فکر میکردم این مسیر را برای همیشه رها کردهام،
با یک حس عجیب بیدار شدم.
لپتاپ را باز کردم.
رفتم Kaggle.
و وارد دنیایی شدم که انگار سالها منتظر من بود.
مردم دنیا برای همان مشکلی که من داشتم—پیشبینی فروش—
دهها راهحل ساخته بودند.
راهحلهایی با ترکیب مدلها، OOF، استکینگ، انسمبل، فیچرهای پیشرفته…
چیزهایی که حتی اسمشان را نشنیده بودم.
من فقط تماشا نمیکردم؛
خطبهخط میخواندم،
تست میکردم،
مقایسه میکردم.
و آنجا فهمیدم:
مدل خوب فقط مدل نیست؛ معماریه.
یک تیم از مدلهاست.
یک گفتگو بین الگوریتمهاست.
جنگ واقعی از اینجا شروع شد : Prophet، ARIMA، LightGBM
اول Prophet را امتحان کردم.
جذاب بود، اما برای فرهنگ ایرانی ساخته نشده بود.
محرم را نمیفهمید.
جابهجایی رمضان را اشتباه میگرفت.
نوروز برایش مثل یک روز معمولی بود.
بعد رفتم سراغ ARIMA.
ده ساعت ران شد.
خروجی: ۱۸٪
هنوز کافی نبود.
LightGBM کمک کرد، اما هنوز یکچیزی میلنگید.
داده من غربی نبود؛
و مدل، هرچقدر هم قوی باشد، تا فرهنگ را نفهمد،
فروش ایرانی را نمیتواند پیشبینی کند.
اینجا بود که فهمیدم مشکل من تاریخ نبود؛ داستان تاریخ بود.
نقطه عطف: وقتی تقویم غربی را کنار گذاشتم و وارد رفتار ایرانی شدم
شروع کردم به ساختن یک تقویم واقعی—
نه تاریخ، این یک داستان فرهنگی بود.
کاری که کردم:
کل مناسبتهای محرم، صفر، رمضان
رفتار خرید در دهه اول محرم
اثر فوقالعادهی شب عید و روزهای قبل نوروز
اثر تعطیلات طولانی خرداد که باعث کاهش فروش میشود
پنجشنبههای تعطیل و رفتار خانوادههای ایرانی
جابهجایی دائمی تقویم قمری روی تقویم شمسی
سایکل ماههای ایرانی
هیچ الگوریتم غربی، بدون این اطلاعات، نمیتواند رفتار مشتری ایرانی را بفهمد.
من اینها را با وباسکرپینگ از time.ir استخراج کردم.
و بعد قیمت دلار را روزانه اسکرپ کردم
چون در ایران فروش همیشه یک گفتوگو با نوسانهاست.
نتیجه؟
۳۳ فیچر جدید.
برای اولین بار فروش ایران در قالب اعداد قابل فهم شد.
مرحله بعد: ساخت مدلهای چندلایه OOF، استکینگ، هایبرید
مدلهای پایه ساختم
روی هر مدل OOF prediction خروجی گرفتم
این خروجیها را بهعنوان ورودی مدل بعدی استفاده کردم
استکینگ ساختم؛ نسخهای شبیه به M5
مدلهای LightGBM و CatBoost را ترکیب کردم
هایبرید ساختم:
مدل اول الگوهای بلندمدت
مدل دوم شوکهای کوتاهمدت
مدل سوم اثرات تقویم
در نهایت یک Weighted Ensemble ساختم
جایی که مدلها با هم حرف میزنند، نه علیه هم.
و آنجا بود که نمودارها شروع کردند به آرام شدن.
پیشبینیها مثل یک پالس منظم درآمدند.
**نتیجه؟
از اکسل با ۲۵٪ خطا
یک مدل چندلایه با MAPE ۶٪
روی داده واقعی.
در ۲۲ منطقه پیچیده تهران.
با رفتار ایرانی.
با تقویم ایرانی.
با نوسانات دلار.
با فصلها و مناسبتها و تعطیلات و جابهجایی قمری.
چیزی که ساده به نظر میرسد،
اما پشتش شش سال تلاش، شکست، برگشت، یادگیری، جنگ و لذت خوابیده.
و حالا… اگر تو هم دنبال فهمیدن این «سیکل پنهان» هستی، من کنارتم
این داستان من بود؛
داستان یک برنامهریز تولید که یک روز فکر میکرد دیتا ساینس سرکاری است،
ولی امروز میبیند:
در دل هر انبار پر، یک ریتم پنهان وجود دارد
فقط باید کسی آن را کشف کند.
اگر تو هم:
فروش غیرقابلپیشبینی داری
انبارت همیشه یا زیاد است یا کم
یا میخواهی بدانید مشتری ایرانی چطور خرید میکند
من راهش را یاد گرفتم.
و خوشحال میشوم کنارت باشم.
آدرس لینکدین من :
https://www.linkedin.com/in/bbkjfr/