۱. مقدمه

آخرین بهروزرسانی: 2024-05-10
کاگل چیست؟
کَگِل (Kaggle) بزرگترین جامعه هوش مصنوعی و یادگیری ماشین، پلتفرمی بینظیر برای علاقهمندان به علوم داده و یادگیری ماشین در تمام سطوح است تا با جدیدترین تکنیکها و فناوریها آشنا شوند. برای شروع پروژه بعدی خود، مخزن گستردهای از مجموعه دادهها، دفترچههای یادداشت و مدلهای از پیش آموزشدیده را کشف کنید. در مسابقات شرکت کنید، از دورهها بیاموزید و با جامعهای متنوع با بیش از ۱۸ میلیون کاربر از سراسر جهان ارتباط برقرار کنید. چه مبتدی باشید و چه حرفهای باتجربه، کَگِل جایی است که میتوانید مهارتهای خود را تقویت کنید، از رقبا جلوتر باشید و در پروژههای پیشرفته همکاری کنید.
آنچه خواهید ساخت
در این آزمایشگاه کد، شما یک مسابقه کاگل (kaggle) ایجاد، پیکربندی و راهاندازی خواهید کرد. شما با تجربه رقبا آشنا خواهید شد و بهترین شیوهها برای اجرای یک مسابقه جذاب را خواهید آموخت.
آنچه یاد خواهید گرفت
- درک نحوه ایجاد و مدیریت یک مسابقه Kaggle از طرف میزبان
- تجربه رقیب را از اکتشاف تا ارسال، مرور کنید
- بهترین شیوهها را برای اجرای یک رقابت جذاب بیاموزید
این آزمایشگاه کد بر ایجاد سریع یک رقابت تمرکز دارد و از کتابخانه رو به رشد رقابت Kaggle بهره میبرد.
آنچه نیاز دارید
- یک مرورگر وب جدید
- دانش پایه پایتون
۲. راهاندازی
ایجاد حساب کاگل
برای ایجاد یک حساب کاربری رایگان، به وبسایت Kaggle (https://www.kaggle.com/) مراجعه کنید و روی «ثبتنام» کلیک کنید.
حساب خود را تأیید کنید
- در گوشه سمت راست بالای صفحه، روی تصویر پروفایل خود کلیک کنید
- روی «پروفایل شما» کلیک کنید
- روی دکمه «تنظیمات» در سمت راست محتوای نمایه کلیک کنید
- در قسمت «تأیید تلفن» دستورالعملهای تأیید حساب کاربری خود را دنبال کنید
۳. ایجاد اولین مسابقهتان
معرفی الگوهای مسابقه تولید شده توسط هوش مصنوعی
مسابقات تولید شده توسط هوش مصنوعی یک ویژگی جدید در Kaggle است که به کاربران امکان میدهد مسابقات یادگیری ماشینی را به سرعت و به راحتی ایجاد کنند. این ویژگی از هوش مصنوعی برای تولید مجموعه دادههای مصنوعی استفاده میکند که ویژگیهای آماری مجموعه دادههای موجود را بدون داشتن هیچ گونه اطلاعات شخصی قابل شناسایی تقلید میکنند.
نحوه کار آن به این صورت است:
- یک الگو انتخاب کنید : بر اساس وظایف مختلف یادگیری ماشین (مثلاً طبقهبندی، رگرسیون) از فهرستی از الگوها انتخاب کنید.
- هوش مصنوعی یک مجموعه داده تولید میکند : هوش مصنوعی Kaggle بر اساس الگوی انتخابی شما، یک مجموعه داده جدید برای رقابت شما ایجاد میکند. این مجموعه داده مشابه مجموعه داده اصلی است اما از زیرمجموعهای از ویژگیها استفاده میکند و توزیع ویژگیهای آن کمی متفاوت است.
- مسابقه خود را سفارشی کنید : جزئیات اولیه مانند نام مسابقه، توضیحات و جدول زمانی را وارد کنید. همچنین میتوانید تنظیمات حریم خصوصی را برای مسابقه خود انتخاب کنید.
- راهاندازی : پس از نهایی کردن جزئیات و تعیین زمان راهاندازی، آمادهاید تا رقابت خود را راهاندازی کنید.
این ویژگی فرآیند ایجاد مسابقه را سادهتر میکند، آن را برای کاربران بیشتری قابل دسترس میسازد و آنها را قادر میسازد تا به جای آمادهسازی مجموعه دادهها، بر جنبههای یادگیری ماشین تمرکز کنند.
ایجاد رقابت
به آدرس https://www.kaggle.com/competitions/new بروید، گزینه «مسابقه جدید تولید شده توسط هوش مصنوعی» را انتخاب کنید.

مسابقه «رگرسیون با مجموعه دادههای سن خرچنگ» را انتخاب کنید.
جزئیات مسابقه

یک نام و زیرعنوان توصیفی وارد کنید. برای مثال، میتوانید از «<نامهای شما> مسابقه خرچنگ آزمایشی» به عنوان عنوان و «در حال ایجاد اولین مسابقهام برای دیدن نحوه عملکرد آن» به عنوان زیرعنوان استفاده کنید. توجه داشته باشید که URL مسابقه به طور خودکار بر اساس عنوان پر میشود.
دید و دسترسی
اکنون باید میزان دیده شدن و دسترسی به مسابقه را تعیین کنیم.
قابلیت مشاهده
- عمومی : رقابت شما برای همه در Kaggle قابل مشاهده است. در نتایج جستجو نشان داده میشود، بنابراین هر کسی که علاقهمند باشد میتواند به آن بپیوندد.
- خصوصی : مسابقه شما از دید عموم پنهان است. در جستجوها نمایش داده نمیشود و فقط افرادی که شما به طور خاص دعوت میکنید میتوانند در آن شرکت کنند.
چه کسی میتواند عضو شود؟
- هر کسی : این مثل سیاست درهای باز است. هر کسی در کاگل میتواند به رقابت شما بپیوندد.
- فقط افرادی که لینک دارند : این گزینه انحصاریتر است. شما یک لینک ویژه ایجاد میکنید و فقط افرادی که آن لینک را دارند میتوانند عضو شوند.
- فهرست ایمیل محدود : این گزینه کنترلشدهترین گزینه است. شما فهرستی از آدرسهای ایمیل یا دامنههای خاص (مانند @yourschool.edu) ارائه میدهید و فقط افرادی که آن آدرسها را دارند میتوانند عضو شوند.
بعداً بیشتر در مورد تنظیمات «فعال کردن نوتبوکها و مدلها» صحبت خواهیم کرد. فعلاً مطمئن شوید که روشن است. برای مثال ما در مسابقه، این تنظیمات را روی «خصوصی» و «فقط افراد دارای لینک» تنظیم کنید.
شرایط را بخوانید و با آنها موافقت کنید و روی « ایجاد مسابقه » کلیک کنید.
۴. درک و پیکربندی رقابت خود
در پشت صحنه، ما یک رقابت کاملاً جدید با یک مجموعه داده منحصر به فرد ایجاد کردهایم. بیایید نگاهی سریع به تنظیمات رقابت بیندازیم.
تب میزبان
تب میزبان شامل هر چیزی است که شما به عنوان میزبان برای پیکربندی صحیح رقابت خود نیاز دارید. به طور خاص به فهرست صفحات در سمت راست صفحه مراجعه کنید:

جزئیات اساسی
این بخش شامل موارد زیر است:
- عمومی
- حریم خصوصی، دسترسی و منابع
- گاهشمار
- امتیازدهی و تیمها
ما هنگام راهاندازی مسابقه، بخشهای عمومی و حریم خصوصی را پوشش دادیم.
گاهشمار
تاریخ پایان مسابقه با توجه به منطقه زمانی تعیین میشود.

امتیازدهی و تیم
بخش امتیازدهی و تیم به شما این امکان را میدهد که تعداد افراد عضو یک تیم، تعداد دفعات ارسال در روز و تعداد موارد مورد نیاز برای انتخاب برای ارزیابی نهایی را کنترل کنید.

تصاویر
تصاویر به شما امکان میدهد بنر و تصویر کوچک را برای مسابقه خود سفارشی کنید. این کار بر صفحه اصلی مسابقه و همچنین ورودی لیست مسابقه شما تأثیر میگذارد.

میزبانها
در اینجا میتوانید سایر کاربران Kaggle را به عنوان میزبان مسابقه خود اضافه کنید. میزبانهای دیگر دسترسی کامل (از جمله راهاندازی) به مسابقه شما خواهند داشت.

معیار ارزیابی
تب معیار ارزیابی، قلب مسابقه است. هنگام ایجاد یک مسابقه از ابتدا، در اینجا باید در مورد اینکه از کدام معیار ارزیابی (یا امتیازدهی) استفاده کنید، فکر دقیقی کنید، فایل راهحل خود را آپلود کنید، تقسیمبندی آزمون عمومی/خصوصی را تعریف کنید و یک نمونه ارسالی ارائه دهید. با این حال، از آنجایی که ما از یک مسابقه تولید شده استفاده کردهایم، نیازی به انجام هیچ یک از این کارها نداریم!
معیار امتیازدهی
این تعیین میکند که چگونه یک درخواست در مقایسه با فایل راهحل امتیازدهی میشود. هر معیار دارای مستندات و کد واقعی است.
فایل راه حل
از آنجایی که ما از یک مسابقه تولید شده استفاده میکنیم، این فایل مختص مسابقه شماست!

نمونهگیری راهحل به شما این امکان را میدهد که میزان فایل راهحل مورد استفاده برای امتیازدهی به موارد ارسالی در طول مسابقه (جدول امتیازات عمومی) را در مقابل تعداد ردیفهای مورد استفاده برای تعیین جدول امتیازات نهایی تنظیم کنید. در طول مسابقه، کاربران مجاز خواهند بود (بر اساس تنظیمات ارسالهای خصوصی امتیازدهی شده) انتخاب کنند که کدام یک از موارد ارسالی آنها برای جدول امتیازات نهایی (که در اینجا جدول امتیازات خصوصی نامیده میشود) استفاده شود.
این فرآیند تضمین میکند که رقبا به دلیل بیشبرازش یا ارسال انبوه دادهها پاداش دریافت نکنند.
ارسالهای سندباکس
این موارد به میزبانان مسابقه اجازه میدهد تا اطمینان حاصل کنند که امتیازدهی طبق پیشبینی انجام میشود و به آنها اجازه میدهد تا موارد ارسالی "معیار" را برای مقایسه رقبا با آنها تعیین کنند. این موارد ارسالی معیار در تابلوی امتیازات نمایش داده میشوند.
تیمها و آثار ارسالی
در طول مسابقه، این به میزبانان اجازه میدهد تا تمام امتیازات را دانلود کنند و همچنین تیمها را مدیریت کنند. قبل از شروع مسابقه، این قسمت خالی است.
چک لیست راه اندازی
این موضوع در بخش بعدی پوشش داده خواهد شد!
۵. راهاندازی رقابت
از بالای صفحه مسابقه، روی دکمه «اجرای چک لیست» کلیک کنید.
چک لیست راه اندازی
چک لیست شروع، مراحل لازم قبل از شروع مسابقه را نشان میدهد. از آنجایی که ما قبلاً از یک الگوی مسابقه شروع کردهایم، بیشتر این مراحل از قبل انجام شدهاند! فقط دو کار باقی مانده است، تعیین مهلت و بهروزرسانی قوانین مسابقه.

مهلت تعیین کنید
ابتدا روی فلش کنار «تنظیم مهلت» کلیک کنید. مسابقات معمولاً حداقل چند ماه طول میکشند. حداکثر مدت زمان یک مسابقه یک سال است.
ویرایش قوانین
قوانین مسابقه شما باید قبل از شروع، از الگوی پیشفرض بهروزرسانی شوند. اگر این مسابقه را برای یک کلاس یا گروه برگزار میکنید، اینجا مکان خوبی برای قرار دادن هرگونه اطلاعات در مورد انتظارات است.
راه اندازی
ما آمادهی راهاندازی هستیم! بفرمایید و مسابقهتان را راهاندازی کنید! حالا آمادهاید تا رقبا به شما بپیوندند!
۶. تجربه رقبا
حالا که مسابقه خود را راهاندازی کردهاید، بیایید نگاهی به تجربه شرکت در مسابقه بیندازیم. ما به نحوه شرکت در مسابقه و ارسال مطلب خواهیم پرداخت. برای این کار، میتوانید از طریق لینک زیر به مسابقه آزمایشی Google IO بپیوندید: https://www.kaggle.com/competitions/google-io-demo-competition
پیوستن به رقابت
پس از ورود به صفحه اصلی مسابقه، روی دکمه «عضویت در مسابقه» در بالا سمت راست کلیک کنید و سپس قوانین را مطالعه و تأیید کنید.
انجام اولین ارسال شما
به برگه کد بروید و روی «دفترچه جدید» کلیک کنید. این یک دفترچه باز میکند که به شما امکان میدهد در مسابقه شرکت کنید.
ابتدا دادههای آموزش و آزمایش را میخوانیم
# دادههای تست و آموزش را بخوانید
قطار = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')
آزمون = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')
بیایید نگاهی به دادهها بیندازیم.
# نگاهی به برخی از دادهها بیندازید
قطار.سر()
بیایید دادهها را برای آموزش آماده کنیم. در این مورد، متغیر Sex را حذف میکنیم زیرا یک مقدار عددی نیست. (راهنمایی: فهمیدن نحوه گنجاندن این متغیر باید عملکرد مدل شما را بهبود بخشد).
# نتایج را از دادههای آزمایشی حذف کنید
data = train.drop(columns=['سن', 'جنسیت'])
پاسخها = قطار['سن']
سپس یک مدل ایجاد میکنیم. در این مورد، ما یک مدل جنگل تصادفی ایجاد میکنیم.
# واردات برای مدل
از sklearn.model_selection، train_test_split را وارد کنید
از sklearn.ensemble، تابع RandomForestRegressor را وارد میکنیم.
از sklearn.metrics، mean_absolute_error را وارد کنید.
مدل = RandomForestRegressor()
# مدل را آموزش دهید
model.fit(دادهها، پاسخها)
ایجاد یک ارسال:
پیشبینیها = model.predict(test.drop(columns=['جنسیت']))
ارسال = pd.DataFrame({'id': test['id'], 'Age': predictions})
ارسال.to_csv('ارسال.csv', index=False)
سپس میتوانید با انتخاب گزینه «ارسال به مسابقه» در منوی سمت راست، در مسابقه شرکت کنید.

نکاتی برای برگزاری یک مسابقه عالی
- حتماً یک دفترچه یادداشت اولیه که شامل اطلاعات اولیه باشد، همراه داشته باشید.
- استفاده از بحثها و به اشتراک گذاشتن دفترچهها را در اوایل مسابقه تشویق کنید.
- خوش بگذره!

