مشتری‌های ماندگار


داده‌های این سوال را می‌توانید از این لینک دانلود کنید.

انتهای هر سال، شرکت‌ها به بررسی و بازنگری استراتژی‌ها و میزان تاثیرگذاری آن‌ها می‌پردازند. هم‌چنین با تحلیل داده‌های سال گذشته، مشغول به هدف‌گذاری برای سال آینده می‌شوند.

در این سوال قصد داریم با دیتایی که از جزئیات فاکتورهای خرید مشتریان در اختیار داریم، به حل یک مسئله از طریق یادگیری نظارت‌شده بپردازیم.

فرض کنید دیتای خرید‌های مشتریان شرکت، طی دو سال گذشته (۲۰۲۱ و ۲۰۲۲) را در اختیار دارید. هم‌چنین در دیتای آموزش، ریکورد‌هایی از جزئیات خرید برخی از مشتریان در سال ۲۰۲۳ وجود دارد.

روند حل سوال🔗

  • در ابتدا باید به پیش‌پردازش دیتا بپردازید.
  • در ادامه مسیر، دیتایی که به عنوان دیتای آموزش (Train) به مدل می‌دهید باید به گونه‌ای باشد که هر سطر آن مربوط به یک مشتری باشد و ستون هدف، نشان‌‌دهنده مجموع هزینه‌ای که مشتری در سال ۲۰۲۳ پرداخت خواهد کرد، باشد.
نکته
  • در طی حل سوال باید خودتان ستون هدف را از دیتای آموزش استخراج کنید.
  • در راستای احتساب مجموع هزینه، از حاصل ضرب Quantity در UnitPrice استفاده کنید.
  • به میلادی و شمسی بودن ستون InvoiceDate در دیتای آموزش و تست دقت کنید.
راهنمایی

هرجا که نیازمند یک تاریخِ از پیش‌ تعیین‌‌شده بودید، می‌توانید از روز اول سال ۲۰۲۳ استفاده کنید.

مجموعه‌داده🔗

ستون‌های دیتای در دسترس به شکل زیر است:

نام ستون توضیحات
Invoice شناسه منحصر به فرد فاکتور
Description توضیحات محصول خریداری شده
Quantity تعداد سفارش از یک نوع محصول در فاکتور
UnitPrice قیمت یک نوع محصول به ازای یک واحد از آن
Customer ID شناسه منحصر به فرد مشتری
Country نام کشور محل سکونت مشتری
StockCode کد انبار فراهم کننده محصول
InvoiceDate تاریخ ایجاد فاکتور
  • توجه: در صورتی که شناسه‌ی Invoice با حرف C شروع شود، یعنی فاکتور لغو شده است.

خواسته نهایی🔗

در نهایت باید برای هر مشتری (Customer ID) که در دیتای تست قرار دارد، پیش‌بینی کنید که آن مشتری در سال ۲۰۲۳ در مجموع چقدر هزینه خواهد کرد.

ارزیابی🔗

برای ارزیابی مدل شما از معیار R2_score استفاده خواهد شد.

توجه

در طول مسابقه امتیازی که مشاهده می‌کنید، فقط نتیجه‌ی R2_score روی ۳۰ درصد از فایلی است که برای کوئرا آپلود می‌کنید. بعد از پایان زمان مسابقه، امتیاز نهایی شما روی کل دیتا محاسبه می‌شود.

این کار به منظور جلوگیری از overfitting و حفظ عمومیت مدل انجام می‌شود تا مطمئن شویم مدل‌هایی که دچار بیش‌برازش شده‌اند، در امتیازهی نهایی، افت می‌کنند.

خروجی سوال🔗

  • خروجی شما باید یک فایل CSV باشد که دارای ۲ ستون و ۶۶۱ سطر (بدون احتساب سطر مربوط به نام ستون‌ها) است. در هر سطر باید به‌ازای یک مشتری (Customer ID)، مقدار پیش‌بینی (Prediction) مدل خود را ذخیره کنید.
  • نام فایل پاسخ شما باید به‌صورت submission.csv باشد.
  • نام ستون‌های شما باید دقیقاً مطابق خروجی نمونه باشد. توجه کنید که ستون Customer ID باید به ترتیب از آیدی شماره ۰ شروع و به ۶۶۰ ختم شود.
  • فرمت ۴ سطر اول محتوای فایل ‍CSV شما باید دقیقا مشابه نمونه زیر باشد
  • اعداد ستون Prediction صرفاً برای مثال گذاشته شده‌اند و پاسخ صحیح نیستند‍‍!

نمونه خروجی🔗

Customer ID Prediction
0 2100.2334
1 909.230
2 230.1202
3 12222.0
نکات مهم درمورد فایل ارسالی
  • جلوی هر آیدی، دقیقاً باید پیش‌بینی مدل برای همان آیدی قرار بگیرد (در صورت نیاز می‌توانید از merge استفاده کنید).
  • توجه کنید که ستون‌های گفته شده حتما دارای header باشد.
  • مراقب باشید در فایل نهایی اندیس ذخیره نشود و فقط دو ستون مذکور باشند.
هشدار

فراموش نکنید که قبل از پایان زمان مسابقه، باید تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این‌صورت، شما از این مسابقه، امتیازی کسب نمی‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می‌کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول نیستند.