| فایل اولیهی تمرین را میتوانید از [این لینک](/contest/assignments/103149/download_problem_initial_project/356094/) دانلود کنید. |
| :--: |
به دنیای زیرزمینی «آلباکرکی» خوش آمدید! والتر وایت اخیرا متوجه شده است که داشتن خالصترین فرمول شیمیایی برای تسخیر بازار کافی نیست؛ او فهمیده که قدرت اصلی در پیشبینی دقیق رفتار و روانشناسی مشتریان نهفته است!
اما یک بحران بزرگ در امپراتوری رخ داده است! اداره مبارزه با مواد مخدر به سرپرستی هنک شریدر، با استفاده از الگوریتمهای هوش مصنوعی در حال شناسایی الگوهای مصرف در سطح شهر است. در همین حال، هایزنبرگ متوجه شد که وکیلش سال گودمن، رفتار مصرفکنندگان را کاملا شانسی و صرفا با نگاه کردن به ظاهر و لباس آدمها در اتاق انتظار دفترش حدس میزده است! هایزنبرگ از شدت عصبانیت سال گودمن را از بخش تحلیل داده اخراج کرده و حالا خطر فروپاشی امپراتوریاش را حس میکند.
حالا هایزنبرگ از شما یک چیز میخواهد: سیستمی بسازید که با استفاده از آزمونهای معتبر روانشناسی (NEO-FFI) و اطلاعات دموگرافیک، کلاس مصرف ۵ محصول خاص را برای هر فرد پیشبینی کند. او همچنین دیتاستی از افراد مختلف را جمعآوری کرده و در اختیار شما قرار داده است.

<details class="yellow">
<summary>**📊 ساختار داده**</summary>
اطلاعات استخراجشده را در قالب دو فایل (آموزش و آزمون) در اختیار شما قرار داده است. هر سطر از این دیتاست، نمایانگر پروفایل یک شخص است. جزئیات ستونهای این دیتاست به شرح زیر است:
| **نام ستون** | **توضیحات** |
| :--- | :--- |
| **ID** | شناسه منحصربهفرد هر شخص |
| **Age** | گروه سنی فرد (نرمالایز شده) |
| **Sex** | جنسیت فرد |
| **EducationLevel** | سطح تحصیلات فرد |
| **Country** | کشور محل اقامت |
| **Background** | قومیت فرد |
| **EmotionalStabilityScore** | نمره روانرنجوری (Neuroticism) از آزمون شخصیت |
| **SocialEnergyScore** | نمره برونگرایی (Extraversion) از آزمون شخصیت |
| **OpennessScore** | نمره گشودگی به تجربیات جدید (Openness) |
| **CooperationScore** | نمره توافقپذیری (Agreeableness) |
| **SelfDisciplineScore** | نمره باوجدان بودن (Conscientiousness) |
| **ImpulseControlScore** | میزان تصمیمگیریهای لحظهای و بدون فکر (Impulsiveness) |
| **NoveltySeekingScore** | شاخص هیجانخواهی و ریسکپذیری (Sensation Seeking) |
در فایل آموزش، علاوه بر ستونهای بالا، ۵ ستون هدف (Target) نیز وجود دارد که شما باید آنها را برای دادههای آزمون پیشبینی کنید. مقادیر این ۵ ستون شامل اعداد `0`، `1` و `2` است که نشاندهنده بازه زمانی مصرف است:
* **کلاس 0 (No/Distant Use):** هرگز مصرف نکرده.
* **کلاس 1 (Near Use):** مصرف در سال گذشته.
* **کلاس 2 (Regular Use):** مصرف منظم.
این ۵ هدف عبارتند از:
`ماری_جوانا`، `ال_اس_دی`، `ماشروم`، `مواد_روان_گردان_قانونی`، `اکستازی`
</details>
### **خروجی**
برای ارزیابی برنامه خود، باید کلاس مصرف (اعداد 0، 1 یا 2) را برای ۵ ستون هدف در دادههای `test.csv` پیشبینی کنید. خروجی شما باید یک فایل CSV باشد که شامل ستون `ID` و ۵ ستون پیشبینی شده است.
```PlainText
ID,Marijuana,LSD,Mushroom,Psychotropic,Ex
1,0,0,1,0,2
2,2,0,0,1,0
3,1,1,0,0,0
4,0,0,0,2,1
...
```
----------
### **نحوه ارزیابی**
عملکرد مدل شما در این مسئله با استفاده از معیار **Macro F1** سنجیده میشود. از آنجایی که با یک مسئله طبقهبندی چندهدفه روبرو هستیم، سیستم داوری ابتدا امتیاز *Macro F1* را برای هر یک از ۵ تارگت به صورت جداگانه محاسبه میکند. برای آنکه مدل شما در هر تارگت امتیازی کسب کند، باید بتواند از آستانه عملکرد پایه (دقت ۶۶٪) عبور نماید. امتیازهای بالاتر از این آستانه، مقیاسبندی شده و نمره نهایی شما را در بازه ۰ تا ۱۰۰ شکل میدهند.
فرمول محاسبه امتیاز نهایی به شرح زیر است:
$$Score = \sum_{i=1}^{5} 20 \times \min\left(1, \max\left(0, \frac{\text{MacroF1}_i - 0.50}{0.50}\right)\right)$$
> **در صورتی که عملکرد مدل در یک تارگت کمتر از ۰.۶۶ باشد، امتیازی برای آن بخش دریافت نخواهد کرد.**