سلام
به مسابقه تحلیل داده از مسیر داده لیگ کُدکاپ ۱۴۰۰ خوش آمدید.
برای آشنایی با سیستم داوری مسابقات تحلیل داده، ویدئو زیر را مشاهده کنید.
قبل از شروع مسابقه، ابتدا موارد زیر را مطالعه کنید:
از آنجایی که اوضاع مالی محمد، سجاد و هادی خیلی خوب شده، تصمیم گرفتند برای تنوع، امسال تعطیلات خود را به جای حیاط خلوت خانه حامد، در یک کشور خارجی سپری کنند. برای همین منظور، این افراد پس از انتخاب کشور مدنظر خود، چهار بلیط فرست کلس تهیه، چمدان های خود را بسته و راهی سفر پرماجرای خود شدند.
آن ها پس از رسیدن به مقصد، به هتل ۵ ستاره از پیش رزرو شده خود رفتند و چمدانهای خود را باز کردند. در همان لحظه محمد احساس سرگیجه و تب و لرز کرد. فردای آن روز حال محمد بدتر شد و مجبور شدند به یک بیمارستان تخصصی برای درمان محمد بروند و پس از درمان، هزینه سنگینی را برای دارو و ویزیت پرداخت کردند. فردای آن روز، حال محمد بهتر شد. پس از ولخرجیهای بسیار این چهار نفر و رفتن به رستوران و مراکز تفریحی گران!، به هتل برگشته و وسایل خود را برای برگشت به ایران آماده کردند، اما...
گذرنامه و ویزاهای حامد و سجاد گم شده و دیگر به دلیل تمام شدن پولشان، نمیتوانند گذرنامه و ویزای جدید بگیرند. هادی که دوست باتجربهتر این اکیپ محسوب میشد، به محمد و حامد و سجاد گفت، اگر قبل از سفر، خودمان را بیمه مسافرتی میکردیم، هم هزینههای ویزیت و دارو محمد را متحمل نمیشدیم و هم میتوانستیم ویزا و گذرنامه حامد و سجاد را دوباره تهیه و هزینه آن را در ایران بپردازیم. همان جا تصمیم گرفتند به محض برگشت، یک شرکت بیمه مسافرتی تاسیس کنند! و از آن جایی که خیلی علاقه به هوش مصنوعی و تحلیل داده نیز دارند، تصمیم گرفتند که یک تحلیلگر داده به تیم خود اضافه کنند. شما از هم اکنون میتوانید در آزمون استخدامی شرکت بیمه مسافرتی حمسه (حامد، محمد، سجاد و هادی) شرکت کنید. 😎
میتوانید دادگان این سوال را از این لینک دریافت کنید.
هر ردیف دادگان آموزش train.csv
، یک رکورد سفر مشتری بوده و مشخصات آن، طبق جدول زیر میباشد:
توضیحات ستون | نام ستون |
---|---|
سن هر مشتری | Age |
بخشی که در آن مشتری مشغول به کار است | Employment Type |
آیا مشتری فارغ التحصیل دانشگاه است؟ | GraduateOrNot |
درآمد سالانه مشتری | AnnualIncome |
تعداد اعضای خانواده مشتری | FamilyMembers |
آیا مشتری از هر بیماری مهم یا شرایطی مانند دیابت، فشار خون بالا یا غیره رنج می برد؟ | ChronicDiseases |
آیا مشتری در طول دو سال گذشته، حداقل چهار سفر داشتهاست؟ | FrequentFlyer |
آیا مشتری تا به حال به یک کشور خارجی سفر کردهاست؟ | EverTravelledAbroad |
آیا مشتری بسته بیمه مسافرتی، خریداری کردهاست؟ | TravelInsurance |
در ابتدای کار، شما میخواهید با بررسی اولیه به اکتشاف در مجموعه دادگان آموزش (train.csv
) بپردازید و به سوالات زیر پاسخ بدهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست).
space
، جدا کنید):در این سوال نیازی به استفاده از قانون بیز نیست و برای محاسبه درصد، افرادی را پیدا کنید که هم بیماری زمینهای دارند و هم بیمه مسافرتی را خریداری کردهاند.
این مرحله در مجموع، شامل ۵ سوال (هر سوال، ۱۰ امتیاز) میباشد. در صورتی که به تمامی سوالات پاسخ صحیح بدهید، بایستی که بتوانید ۵۰ امتیاز از این مرحله کسب کنید.
برای ارسال پاسخ، جواب هر سوال را مشابه مثال، در یک سطر از یک فایل text
بنویسید. در نهایت یک فایل پنج خطی با نام output.txt را برای ما بارگذاری کنید.
در صورتی که جواب سوالی را نمیدانید در سطر مربوطه ۱- وارد کنید.
در خط i ام جواب سوال i ام نوشته شدهاست.
چون پاسخ سوال دوم و پنجم را نمیدانستید، به جای آن عدد ۱- نوشتهاید!
حال که در مرحله قبلی با دادگان بیمه تا حدودی آشنا شدید، وقت آن است که برای هر مسافر، احتمال آن که او برای سفر خود، بیمه تهیه کند را پیشبینی کنید.
Photo by Scott Graham on Unsplash
دادگان این مرحله، دقیقا مانند مرحله قبل است. برای حل این سوال، دو فایل csv
در اختیار خواهید داشت. فایل train.csv
همان فایلی است که باید بر اساس آن، مدل خود را آموزش دهید و فایل test.csv
مشخصات مسافرانی را شامل میشود که باید احتمال خریدن بیمه را برای آنها پیشبینی کنید. به عبارت بهتر باید تخمین بزنید چقدر احتمال دارد ستون TravelInsurance
مقدار Yes
داشته باشد.
امتیاز نهایی مُدل شما تابعی از سطح زیر ناحیه نمودار ROC است. برای مطالعه بیشتر در مورد این نمودار میتوانید ویکیپدیا یا راهنمای کوتاه نکات و ترفندهای یادگیری ماشین را مطالعه کنید.
امتیاز نهایی مدل شما طبق فرمول زیر محاسبه میشود.
علت استفاده از این فرمول برای امتیازدهی، این است که اگر به صورت تصادفی برای مشتریان عددی پیشبینی کنید، auc_roc
مدل شما ۰.۵ خواهد بود. بنابراین تنها مدلهایی پذیرفته میشوند که دارای auc_roc
بیشتر از ۰.۵ باشند.
داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از دادگان آزمایش (test
) خواهد بود. پس از اتمام مسابقه، برای بهروزرسانی نهایی جدول امتیازات، فقط از ۷۰ درصد مابقی دادگان آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیشبرازش (overfit
) انجام میشود.
پیشبینیهای مدل خود بر روی دادگان آزمایش (test.csv
) را در فایلی با نام output.csv
قرار دهید. این فایل باید دارای دو ستون با نامهای prediction
و Customer Id
باشد که ردیف i ام ستون prediction
پیشبینی شما (احتمال تهیه کردن بیمه - عددی بین صفر و یک) برای مشتری ردیف i ام از ستون Customer Id
باشد (دقت کنید که ستونها باید حتما دارای header
باشند). بعد از آمادهسازی فایل output.csv
، آن را برای ما بارگذاری کنید.
حتما فایل output.csv باید دارای ۳۹۷ سطر و ۲ ستون باشد.
در این سوال، شما به تحلیل رفتار مشتریان میپردازید.
شما به دادگان تراکنشهای یک فروشگاه آنلاین موادغذایی از این لینک دسترسی دارید. در این سوال، به تمامی خریدهایی که یک مشتری در یک روز انجام میدهد، "سبد" میگوییم:
هر ردیف دادگان، سفارش یک نوع محصول توسط یک مشتری را طبق جدول زیر نشان میدهد:
نام ستون | توضیحات ستون |
---|---|
Customer Id | شناسه مشتری |
Date | تاریخ سفارش |
Product | نام محصول |
ابتدا با استفاده از این دادگان، به ۵ سوال اکتشافی زیر پاسخ دهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست).
هر کدام از این ۵ سوال بالا، دارای ۲۰ امتیاز هستند (۱۰۰ امتیاز در مجموع).
حال، به تحلیل سبد خرید مشتریان که یکی از تکنیک های کلیدی، خرده فروشان بزرگ برای کشف ارتباط بین اقلام خریداری شدهاست، میپردازید و بدین منظور، از قوانین وابستگی استفاده خواهید کرد.
به عنوان مثال، با قانون وابستگی میتوان محاسبه کرد که اگر یک مشتری پیاز و سیب زمینی را در سبد خرید خود قرار داده باشد، با چه احتمالی، او مایل به خرید گوشت همبرگر نیز خواهد بود؟ چنین اطلاعاتی میتوانند در تصمیماتی مانند ارائه تخفیف، قراردادن محصولات در کنار هم و یا پکیج کردن آنها، تاثیر بگذارند.
با مثال زیر، دو معیار قوانین وابستگی که در این سوال نیاز دارید، توضیح داده میشوند. فرض کنید که ۱۰۰ سبد دارید که ۱۰تای آنها شیر، ۸تای آنها کره و ۶ تای آنها هر دو را دارند.
معیار پشتیبانی (support
)، نشان می دهد که یک مجموعه محصول/محصولات چقدر محبوب است:
در مثال بالا، support(milk)
برابر است با ۰.۱ و support(milk,butter)
برابر است با ۰.۰۶
معیار اطمینان (confidence
)، نشان میدهد که هنگام خرید محصول/محصولات X
چقدر احتمال دارد که محصول/محصولات Y
خریداری شوند و از این امر به عنوان "الگو" یاد میکنیم:
در مثال بالا، confidence(milk->butter)
برابر است با ۰.۶
به استفاده از معیارهای support
و confidence
، به دو سوال زیر پاسخ دهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست):
support
را دارند به ترتیب نزولی کدامند؟support
آنها، حداقل ۰.۰۱ میباشد. دو الگویی که بیشترین confidence
را دارند، به ترتیب نزولی کدامند؟شاید بتوانید که از الگوریتم آپریوری، برای حل سوالات تحلیل سبد خرید، استفاده کنید.
هر کدام از این ۲ سوال بالا، دارای ۵۰ امتیاز هستند (۱۰۰ امتیاز در مجموع) و در صورتی که به تمامی سوالات، این صفحه پاسخ صحیح دهید. شما بایستی که ۲۰۰ امتیاز کسب کنید.
برای ارسال پاسخ، جواب هر سوال را مشابه مثال، در یک سطر از یک فایل text
بنویسید. در نهایت یک فایل هفت خطی با نام output.txt را برای ما بارگذاری کنید (جواب سوال اول در خط اول، سوال دوم در خط دوم، ... سوال هفتم در خط هفتم).
در صورتی که جواب سوالی را نمیدانید در سطر مربوطه ۱- وارد کنید.
در خط i ام جواب سوال i ام نوشته شدهاست.
اگر نام فایل شما و ساختار محتویات آن، همانند آنچه در صورت سوال ذکر شدهاست، نباشد؛ امتیازی از سوال دریافت نخواهید کرد.
به منظور جلوگیری از هر گونه تقلب و شبهه احتمالی که منجر به ضایع شدن حق شما شود، شما بایستی که فایل کد برنامهنویسی (مثلا برای پایتون فایل .py
یا برای زبان R
هم فایل .R
) را در قالب یک فایل زیپ در اینجا بارگذاری نمایید. همچنین اگر که از ابزارهای نرمافزاری استفاده میکنید. خروجی (export
) آن را در فایل زیپ قرار دهید. در صورتی که پس از پایان زمان مسابقه، این فایل توسط شما بارگذاری نشده باشد، شما از جدول مسابقات حذف خواهید شد.
توجه داشته باشید که اگر از jupter notebook
استفاده می کنید بایستی همانند توضیح بالا، خروجی مورد نظر را دریافت کنید. به عنوان مثال، شما بایستی که از قسمت file
و زیرقسمت Download
خروجی .py
را دریافت و برای ارسال در نظر بگیرید. ارسال فایلهای jupyter
همانند .ipynb
مورد قبول واقع نخواهند شد.
برای هر سوال که جواب دادید، یک پوشه به نام آن سوال (مانند Step1
) ایجاد و تمامی کدهای خود را در آن قرار دهید. در نهایت، همه پوشهها را تحت یک پوشه نهایی زیپ کرده و برای ما فقط یک فایل زیپ ارسال کنید.
با تشکر فراوان