| فایل اولیهی سوال را میتوانید از [این لینک](/contest/assignments/84381/download_problem_initial_project/308145/) دانلود کنید.|
| :--: |
«آوا تلکام» را یادتان هست؟ ما دوباره با یک چالش جدی مواجه شدیم و به کمک متخصص دادهای مثل شما نیازمندیم.
----------
در آستانه ورود به سال ۱۴۰۲، با یک چالش بزرگ و هیجانانگیز روبرو هستیم. در طول سالهای گذشته، از سال ۱۳۹۷ تا اواخر سال ۱۴۰۱، ما شاهد رشد انفجاری در تعداد مشتریان و حجم ترافیک مصرفی آنها بودهایم. از فروشگاههای آنلاین پربازدید و پلتفرمهای پخش ویدیو گرفته تا استارتاپهای بازیسازی و شرکتهای بزرگ، همگی برای ارائه خدمات خود به زیرساخت پایدار و قدرتمند «آوا تلکام» متکی هستند.
موفقیت ما به یک اصل کلیدی گره خورده است: **توازن**. ما باید بتوانیم منابع سرور و پهنای باند شبکه را به صورت لحظهای مدیریت کنیم. اگر منابع کمی تخصیص دهیم، سرعت خدمات کاهش یافته و مشتریان ما ناراضی خواهند شد. اگر هم بیش از حد منابع در نظر بگیریم، میلیونها تومان صرف هزینههای نگهداری سرورهای بدون استفاده خواهد شد.
اینجا جایی است که شما وارد میشوید. ما معتقدیم که کلید حل این چالش، در دستان متخصصان علم دادهای مانند شماست. ما به مدلی هوشمند نیاز داریم که بتواند با تحلیل الگوهای پیچیده مصرف در گذشته، تقاضای آینده شبکه را با دقت بالایی پیشبینی کند.
----------
مأموریت شما واضح است:
**شما باید یک مدل یادگیری ماشین توسعه دهید که با استفاده از دادههای مصرف هر ۱۵ دقیقه حدود ۳۷۰ مشتری منتخب ما در چند سال گذشته، بتواند مجموع کل ترافیک مصرفی شبکه را به صورت ساعتی برای تمام ۳۰ روز آینده یعنی تمام آذرماه سال ۱۴۰۱ پیشبینی کند.**
مدل شما باید بتواند الگوهای روزانه (ساعات اوج و فرود مصرف)، الگوهای هفتگی (تفاوت روزهای کاری و تعطیلات) و روندهای بلندمدت را تشخیص داده و یک پیشبینی دقیق و قابل اعتماد برای ۳۰ روز آینده ارائه دهد.
برای این سوال فایل زیر در اختیار شما قرار میگیرد:
1. **`train.csv` (مجموعه داده آموزش):**
+ این فایل شامل دادههای مصرف ۱۵دقیقهای برای حدود ۳۷۰ مشتری ناشناس ما (از `U1` تا `U370`) است. هر کدام از ستونهای این مجموعه داده که شامل `U_id` باشند، در واقع نمایانگر میزان مصرف کاربر مشخص در آن زمان مشخص است.
+ بازه زمانی دادهها از **۱ بهمن ۱۳۹۷** آغاز شده و تا **۳۰ آبان ۱۴۰۱** ادامه دارد.
+ واحد اعداد، **مگابایت (Megabytes)** است. برای مثال، عدد `7120.0` به معنای مصرف ۷۱۲۰ مگابایت در آن ساعت توسط آن مشتری است.
> نکته: مقادیر `0` که در سطرهای اولیه برای بعضی کاربران درج شده به معنی عدم وجود این کاربران در شبکه «آوا تلکام» است نه عدم مصرف که اصطلاحا به آن مشکل **«شروع سرد (cold start)»** گفته میشود.
### خروجی
خروجی شما باید شامل یک فایل `submission.csv` باشد که مجموع مصرف **ساعتی** کاربران ما را در ماه آینده (آذر ۱۴۰۱) مشخص میکند. در واقع ما میخواهیم بدانیم در آذرماه پیشرو، در هر ساعتی کاربران ما مجموعا چندمگابایت ترافیک مصرف میکنند.
+ ستونها باید شامل `timestamp` (برچسب زمانی دقیق برای هر ساعت از آذر ۱۴۰۱) و `total` (پیشبینی شما برای مجموع مصرف کل شبکه در آن ساعت) باشند.
| *timestamp* | *total* |
|:---------:|:----------:|
| 1401-09-01 00:00:00 | 79000 |
| 1401-09-01 01:00:00 | 79000 |
| ... | ... |
| 1401-09-30 23:00:00| 79000 |
### ارزیابی
عملکرد مدل شما بر اساس **خطای جذر میانگین مربعات (Root Mean Squared Error - RMSE)** ارزیابی میشود. برای تبدیل این خطا به یک «امتیاز» قابل مقایسه در بازه ۰ تا ۱۰۰، از یک تابع امتیازدهی غیرخطی استفاده میکنیم که در آن امتیاز بالاتر، نشاندهنده عملکرد برتر است.
این سیستم امتیازدهی، خطای مدل شما (RMSE) را در مقایسه با **انحراف معیار (Standard Deviation)** مقادیر واقعی (`std(Y_true)`) میسنجد. انحراف معیار، پراکندگی یا نوسان ذاتی دادههای ترافیک را اندازهگیری میکند. در نتیجه، یک مدل موفق نهتنها باید دقیق باشد، بلکه خطای آن باید نسبت به این نوسانات طبیعی، مقدار ناچیزی باشد.
\[
Score = 100 \times e^{\left(-\frac{\text{RMSE}}{\text{std}(Y_{\text{true}})}\right)}
\]
یک امتیاز ۱۰۰ به معنای پیشبینی کاملاً دقیق (خطای صفر) است. این فرمول به صورت نمایی عمل میکند؛ یعنی به مدلهایی که خطای آنها به مراتب کوچکتر از نوسانات طبیعی دادهها باشد، امتیاز بالایی اختصاص میدهد و با افزایش خطا، امتیاز به سرعت کاهش مییابد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.