در حالی که بسیاری از ما از ارتباط داشتن در فضای مجازی لذت میبریم، استفاده بیش از حد آن میتواند موجب تحریک احساساتی مانند اضطراب، افسردگی، انزوا و ترس جاماندن شود.
![توضیح تصویر](https://quera.org/qbox/view/EEQUjplPGh/Generica_odio_in_rete.jpg)
کاوان یک روانشناس است. او تعدادی از نظرات و کامنتهای فضای مجازی را استخراج کرده و برای هر نظر، ۱۰ ویژگی روانشناختی در نظر گرفته و به هر کدام از این ۱۰ ویژگی، از بین ۰ تا ۴ امتیاز داده است تا در نهایت میزان استرس و افسردگی هر فرد را بررسی کند؛ ولی این کار زمان زیادی از او میگیرد.
بنابراین او از شما میخواهد مدلی آموزش دهید که با توجه به محتوای متن، به هر کدام از ویژگیهای روانشناختی نمرهای بین ۰ تا ۴ اختصاص دهد.
# مجموعه داده
| مجموعه داده سوال را میتوانید از [این لینک](/contest/assignments/45363/download_problem_initial_project/157863/) دانلود کنید.|
| :--: |
هنگامی که این فایل را از حالت فشرده خارج کنید، فایل آموزش (`train.csv`) و آزمایش (`test.csv`) را مشاهده میکنید. فایل آموزش، دارای ساختار زیر است:
| نام ستون | توضیحات ستون |
|:----------:|:------------------:|
| text | نوشته هر شخص |
| sense | احساسات |
| honor | احترام |
| curse | توهین |
| despise | تحقیر |
| situation | وضعیت |
| antihuman | غیرانسانی |
| roughness | ناهنجاری |
| slaughter | نسلکشی |
| strike_support | حمله-حمایت |
| depression_rate | استرس |
عمده نظرات موجود در ستون `text` به زبان انگلیسی هستند؛ اما تعداد محدودی از نظرات وجود دارند که به زبانهای دیگر ثبت شدهاند. مدیریت این چالش بخشی از فرایند حل مسئله است.
همچنین تفاوت مجموعه داده آموزش با آزمایش در این است که مجموعه داده آزمایش، فقط ستون `text` دارند.
<details class="yellow">
<summary>
**توجه**
</summary>
مجموعه داده این سوال از توییتر انگلیسی استخراج شده است. بنابراین کوئرا **هیچ** نقشی در تولید داده این سوال نداشته است!
</details>
# صورت مسئله
با استفاده از مجموعه داده آموزش، مدلی توسعه دهید که به هر ویژگی روانشناختی متن، از ۰ تا ۴ امتیاز دهد.(اعداد میتوانند اعشاری باشند) **پس خروجی مسئله فقط یک عدد نیست!**، بلکه به ازای هر متن در مجموعه داده آزمایش، میبایست یک بردار ۱۰ تایی پیشبینی کنید.
نمونه خروجی مسئله را در بخشهای بعدی مشاهده خواهید کرد.
# ارزیابی
امتیاز نهایی مُدل شما تابعی از خطای جذر میانگین مربعات (RMSE) است. برای مطالعه بیشتر در مورد این خطا میتوانید به [ویکیپدیا](https://en.wikipedia.org/wiki/Root-mean-square_deviation) مراجعه کنید.
این خطا برای هر ستون حساب میشود و در نهایت میانگین RMSE برای همه ستون ها (MCRMSE) بدست میآید.
امتیاز نهایی مدل شما، طبق فرمول زیر محاسبه میشود:
$$score = (1.5 - MCRMSE) \times \frac{100}{150} \times 150$$
<details class="green">
<summary>
**توضیحات**
</summary>
یک تابع تصادفی یا تابعی که همیشه یک امتیاز ثابت را پیش بینی میکند، حداقل `RMSE` برابر با ۱.۵ برای مجموعه داده این سوال دارد. پس، مدلهایی که `RMSE` آنها ۱.۵ یا بزرگتر از آن باشد، به عنوان مدل مناسب این مسئله، مورد قبول قرار نمیگیرند و هرمدلی که چنین عملکردی را روی مجموعه داده آزمایش داشتهباشد، امتیازی از این سوال کسب نمیکند.
</details>
<details class="yellow">
<summary>
**توجه**
</summary>
لطفا در هنگام کار با این دادگان، به نکات زیر توجه داشته باشید:
+ مقدار `RMSE` مدل شما، تا سه رقم اعشار محاسبه (رُند) و در فرمول امتیازدهی بالا، قرار داده میشود.
+ این سوال، امتیاز منفی ندارد. حتی اگر `score` شما، منفی شود. از این سوال حداقل **صفر** امتیاز میگیرید. 😜
+ بیشترین امتیاز ممکن از این سوال ۱۵۰ و کمترین امتیاز ممکن، صفر است.
</details>
| **داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از مجموعه داده آزمایش (`test`) خواهد بود. پس از اتمام مسابقه، برای بهروزرسانی نهایی جدول امتیازات، از ۱۰۰ درصد مجموعه داده آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیشبرازش (`overfit`) روی مجموعه داده آزمایش انجام میشود.** |
| :--: |
# خروجی
پیشبینیهای مدل خود بر روی دادگان آزمایش (`test.csv`) را در فایلی با نام `output.csv` قرار دهید.
این فایل باید دارای ۱۰ ستون به اسم ویژگی ها باشد که ردیف i ام هر ستون ، پیشبینی شما (یک عدد بین ۰ تا ۴ با نهایتا ۳ رقم اعشار) برای نظر ردیف i ام از فایل `test.csv` باشد. بعد از آمادهسازی فایل `output.csv`، آن را برای ما بارگذاری کنید.
## نمونه خروجی فایل `output.csv` (فقط چهار خط اول به همراه نام ستون)
```
sense honor curse despise situation antihuman roughness slaughter strike_support depression_rate
3.4 3.0 2.0 2.0 4.0 2.0 0.1 2.9 3.0 4.0
3.0 3.1 3.5 2.5 2.4 2.0 1.0 3.0 2.0 2.1
3.0 2.3 1.0 1.0 2.0 1.1 3.0 2.0 1.9 3.0
4.0 4.0 4.0 3.0 3.0 3.0 1.0 4.0 4.0 1.0
```
<details class="yellow">
<summary>
**توجه**
</summary>
حتما فایل `output.csv` باید دارای ۱۷۵۴ سطر (بدون در نظر گرفتن `header`) و ۱۰ ستون باشد.
</details>
<details class="red">
<summary>
**هشدار 😱**
</summary>
فراموش نکنید که **قبل از پایان زمان مسابقه**، **بایستی** تمامی کدهای این مسابقه را از قسمت **بارگذاری کُد** برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی کنید.
توجه داشته باشید که اگر از `jupter notebook` استفاده می کنید بایستی همانند توضیحات قسمت **بارگذاری کُد**، خروجی `.py` را دریافت و برای ارسال در نظر بگیرید. ارسال فایلهای `jupyter` همانند `.ipynb` مورد قبول واقع نخواهند شد.
</details>