[وبسایت کگل](www.kaggle.com) خانه دوم دانشمندان داده است. در این وبسایت میتوان انواع مختلفی از مجموعههای داده را پیدا کرد. از حوزه متن گرفته تا گراف، افراد در سراسر دنیا، دادههای خود را با دیگران به اشتراک میگذارند.
![توضیح تصویر](https://quera.org/qbox/view/BAFymIBlJd/Kaggle_logo.png)
به عنوان تحلیلگر یا دانشمند داده و حتی مهندس یادگیری ماشین، شاید بارها و بارها پیش آمده است که برای تمرین شخصی یا پروژههای دانشگاهی و صنعتی در [وبسایت کگل](www.kaggle.com) ساعتها مشغول بررسی مجموعه دادههای موجود باشید، تا بتوانید بهترین مجموعه داده مناسب نیازتان را پیدا کنید!
اگر میتوانستیم با استفاده از یادگیری ماشین و هوش مصنوعی، مجموعه دادههایی که مناسبتر هستند را پیدا کنیم، در وقتمان بسیار صرفهجویی میشد.
حال در این مسئله قصد داریم با استفاده از دادهای که از سایت کگل استخراج شده است، به پیشبینی معیار استفادهپذیری *(usability score)* مجموعههای داده بپردازیم!
# مجموعه داده
| مجموعه داده سوال را میتوانید از [این لینک](/contest/assignments/45363/download_problem_initial_project/157861/) دانلود کنید.|
| :--: |
هنگامی که این فایل را از حالت فشرده خارج کنید، فایلهای آموزش (`train.csv`) و آزمایش (`test.csv`) در اختیار شما خواهند بود. فایل آموزش، اطلاعات ۸۰۰۰ مجموعه داده را در ۹ ستون در خود جا داده است.
جزییات فایل آموزش، در جدول زیر آمدهاست:
| نام ستون | توضیحات ستون |
|:----------|:------------------:|
| dataset url |لینک به مجموعه داده|
| title |عنوان مجموعه داده|
| dataset author |شخصی که مجموعه داده را در کگل قرار داده است|
| dataset created |زمانی که مجموعه داده در کگل بارگذاری شده است|
| file type, no. of files and file size |فرمت، تعداد و حجم مجموعه داده|
| documentation remarks |توضیحاتی درباره کیفیت مستندات مجموعه داده|
| votes |تعداد رایهای مثبتی که توسط کاربران سایت به مجموعه داده شده است|
| medal |مدالی که مجموعه داده تصاحب کرده است. اگر این ستون خالی باشد، به معنی این است که مجموعه داده مدالی برنده نشده است|
| usability score |معیار استفادهپذیری برای هر مجموعه داده|
<details class="yellow">
<summary>
**توجه**
</summary>
ستون `dataset created` با عبارتهایی نظیر *13 days ago* یا *an hour ago* پر شده است. مبدا زمانی برای تبدیل این ستون به فرمت تاریخ را معادل `00:00:00 20-10-2022` در نظر بگیرید. پس در سطری که ستون `dataset created` برابر *16 days ago* باشد، در حقیقت تاریخ بارگذاری مجموعه داده در کگل، برابر `00:00:00 04-10-2022` بوده است.
</details>
توجه داشته باشید که فایل آزمایش دارای ستون `usability score` نیست.
# صورت مسئله
با استفاده از مجموعه داده آموزش، یک مُدل برای پیشبینی معیار استفادهپذیری مجموعه دادههای وبسایت کگل آموزش دهید؛ بدین صورت، در آینده برای پیدا کردن مجموعه دادههای مناسب، میتوانید از آن استفاده کنید و در وقت خود صرفهجویی نمایید 😎
<details class="yellow">
<summary>
**توجه**
</summary>
در مجموعه داده آموزش و آزمایش، برخی ستونها مقدار `null` یا `nan` دارند. مدیریت این موضوع، بخشی از چالش مسئله است!
منتها توجه داشته باشید هیچ سطری از مجموعه داده **آزمایش** نباید حذف شود. زیرا سامانه داوری انتظار دارد به ازای تمامی سطرهای مجموعه آزمایشی که در اختیارتان قرار گرفته است، پیشبینی انجام دهید.
</details>
# ارزیابی
برای ارزیابی مُدل شما از معیار `Root Mean Square Error` یا به اختصار `RMSE` به شرح زیر استفاده میشود:
$$RMSE=\sqrt{\frac{\sum_{i=1}^{n}(r_i-\hat{r}_i)^2}{n}}$$
در فرمول بالا، $r_i$ مقدار واقعی `usability score` برای سطر $i$ است و $\hat{r}_i$ نیز مقدار پیشبینی شده مُدل شما برای آن `usability score` است. همچنین تعداد نمونههای مجموعه داده را از شماره ۱ تا $n$ در نظر بگیرید. در نهایت، امتیاز شما از این مرحله بر اساس فرمول زیر محاسبه میگردد:
$$score=(1.71-RMSE)\times\frac{100}{171}\times100$$
<details class="green">
<summary>
**توضیحات**
</summary>
یک تابع تصادفی یا تابعی که همیشه یک امتیاز ثابت را پیش بینی میکند، حداقل `RMSE` برابر با ۱.۷۱ برای مجموعه داده این سوال دارد. پس، مدلهایی که `RMSE` آنها ۱.۷۱ یا بزرگتر از آن باشد، به عنوان مدل مناسب این مسئله، قابل قبول نیستند و هرمدلی که چنین عملکردی را روی مجموعه داده آزمایش داشتهباشد، امتیازی از این سوال کسب نمیکند.
</details>
<details class="yellow">
<summary>
**توجه**
</summary>
لطفا در هنگام کار با این دادگان، به نکات زیر توجه داشته باشید:
+ مقدار `RMSE` مدل شما، تا سه رقم اعشار محاسبه (رُند) و در فرمول امتیازدهی بالا، قرار داده میشود.
+ این سوال، امتیاز منفی ندارد. حتی اگر `score` شما، منفی شود. از این سوال حداقل **صفر** امتیاز میگیرید. 😜
+ بیشترین امتیاز ممکن از این سوال ۱۰۰ و کمترین امتیاز ممکن، صفر است.
</details>
| **داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از مجموعه داده آزمایش (`test`) خواهد بود. پس از اتمام مسابقه، برای بهروزرسانی نهایی جدول امتیازات، از ۱۰۰ درصد مجموعه داده آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیشبرازش (`overfit`) روی مجموعه داده آزمایش انجام میشود.** |
| :--: |
# خروجی
پیشبینیهای مدل خود بر روی دادگان آزمایش (`test.csv`) را در فایلی با نام `output.csv` قرار دهید. این فایل باید دارای یک ستون با نام `usability_score` (به زیرخط یا *underline* در این کلمه توجه کنید) باشد که ردیف iام آن، پیشبینی شما برای سطر iام مجموعه داده آزمایش باشد (دقت کنید که این ستون باید حتما دارای `header` باشد).
بعد از آمادهسازی فایل `output.csv`، آن را برای ما بارگذاری کنید.
## نمونه خروجی فایل `output.csv` (فقط سه خط اول به همراه نام ستون)
```
usability_score
5.64
9.853
6
```
<details class="yellow">
<summary>
**توجه**
</summary>
حتما فایل `output.csv` باید دارای ۵۰۸ سطر (بدون در نظر گرفتن `header`) و یک ستون باشد.
همچنین نام ستون بایستی بدون `space` در قبل و بعد از نام آن، باشد. در غیر این صورت، سیستم داوری نمرهای به شما نخواهد داد.
پیشبینیهای شما از `usability_score`ها، میتوانند به صورت عدد اعشاری نیز ارسال بشوند.
</details>
<details class="red">
<summary>
**هشدار 😱**
</summary>
فراموش نکنید که **قبل از پایان زمان مسابقه**، **بایستی** تمامی کدهای این مسابقه را از قسمت **بارگذاری کُد** برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی کنید.
توجه داشته باشید که اگر از `jupter notebook` استفاده می کنید بایستی همانند توضیحات قسمت **بارگذاری کُد**، خروجی `.py` را دریافت و برای ارسال در نظر بگیرید. ارسال فایلهای `jupyter` همانند `.ipynb` مورد قبول واقع نخواهند شد.
</details>
مجموعه دادهای از مجموعه دادهها
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.