1. مقدمة

تاريخ آخر تعديل: 2024-05-10
ما هي منصة Kaggle؟
Kaggle هو أكبر منتدى للذكاء الاصطناعي وتعلُّم الآلة، وهو المنصة الأفضل لعشاق عِلم البيانات وتعلُّم الآلة من جميع المستويات للانتقال إلى مستوى أعلى باستخدام أحدث التقنيات. استكشِف مستودعًا كبيرًا لمجموعات البيانات ودفاتر الملاحظات والنماذج المدرَّبة مسبقًا لبدء مشروعك التالي. يمكنك المشاركة في المسابقات والاستفادة من الدورات التدريبية والتواصل مع منتدى متنوّع يضم أكثر من 18 مليون مستخدم من جميع أنحاء العالم. سواء كنت مبتدئًا أو محترفًا متمرّسًا، يمكنك الاستفادة من Kaggle لصقل مهاراتك ومواكبة أحدث التطورات والتعاون في مشاريع متطورة.
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستنشئ مسابقة على Kaggle وتضبط إعداداتها وتطلقها. ستتعرّف على تجربة المنافسين وأفضل الممارسات لتنظيم مسابقة جذّابة.
ما ستتعلمه
- التعرّف على كيفية إنشاء مسابقة على Kaggle وإدارتها من جهة المضيف
- التنقّل في تجربة المنافسة، بدءًا من الاستكشاف وصولاً إلى إرسال الحلّ
- التعرّف على أفضل الممارسات لتنظيم مسابقة جذّابة
يركّز هذا الدرس التطبيقي حول الترميز على إنشاء مسابقة بسرعة والاستفادة من مكتبة المسابقات المتزايدة في Kaggle.
المتطلبات
- متصفّح ويب حديث
- معرفة أساسية بلغة Python
2. الإعداد
إنشاء حساب على Kaggle
انتقِل إلى موقع Kaggle الإلكتروني (https://www.kaggle.com/) وانقر على "تسجيل" لإنشاء حساب مجاني.
إثبات ملكية حسابك
- في أعلى يسار الصفحة، انقر على صورة ملفك الشخصي.
- انقر على "ملفك الشخصي"
- انقر على زر "الإعدادات" على يسار محتوى الملف الشخصي
- اتّبِع التعليمات الواردة ضمن "تأكيد رقم الهاتف" لتأكيد حسابك.
3- إنشاء مسابقتك الأولى
نقدّم لك نماذج مسابقات من إنشاء الذكاء الاصطناعي
"المسابقات المستندة إلى الذكاء الاصطناعي" هي ميزة جديدة على Kaggle تتيح للمستخدمين إنشاء مسابقات تعلّم آلي بسرعة وسهولة. تستفيد هذه التقنية من الذكاء الاصطناعي لإنشاء مجموعات بيانات اصطناعية تحاكي الخصائص الإحصائية لمجموعات البيانات الحالية بدون أن تحتوي على أي معلومات تكشف الهوية الشخصية.
وإليك كيفية تنفيذ ذلك:
- اختيار نموذج: اختَر من قائمة النماذج استنادًا إلى مهام مختلفة في تعلُّم الآلة (مثل التصنيف والانحدار).
- الذكاء الاصطناعي ينشئ مجموعة بيانات: ينشئ الذكاء الاصطناعي في Kaggle مجموعة بيانات جديدة للمسابقة استنادًا إلى النموذج الذي اخترته. تشبه مجموعة البيانات هذه المجموعة الأصلية، ولكنّها تستخدم مجموعة فرعية من الميزات وتتضمّن توزيعات ميزات مختلفة قليلاً.
- تخصيص المسابقة: أدخِل التفاصيل الأساسية، مثل اسم المسابقة ووصفها والجدول الزمني. يمكنك أيضًا اختيار إعدادات الخصوصية للمسابقة.
- الإطلاق: بعد الانتهاء من التفاصيل وتحديد موعد الإطلاق، تكون جاهزًا لإطلاق المسابقة.
تسهّل هذه الميزة عملية إنشاء المسابقات، ما يتيح لعدد أكبر من المستخدمين الاستفادة منها والتركيز على جوانب تعلُّم الآلة بدلاً من إعداد مجموعات البيانات.
إنشاء مسابقة
انتقِل إلى https://www.kaggle.com/competitions/new، ثم انقر على "مسابقة جديدة من إنشاء الذكاء الاصطناعي".

اختَر مسابقة "Regression with a Crab Age Dataset".
تفاصيل المسابقة

املأ اسمًا وصفيًا وعنوانًا فرعيًا. على سبيل المثال، يمكنك استخدام "مسابقة سرطان البحر التجريبية التي أقامها <اسمك>" كعنوان و"إنشاء مسابقتي الأولى لمعرفة طريقة عملها" كعنوان فرعي. يُرجى العِلم أنّه تتم تعبئة عنوان URL الخاص بالمسابقة تلقائيًا استنادًا إلى العنوان.
مستوى الظهور وأذونات الوصول
علينا الآن ضبط إعدادات مستوى الظهور وإمكانية الوصول إلى المسابقة.
مستوى الرؤية
- علنية: يمكن لأي مستخدم على Kaggle الاطّلاع على مسابقاتك. ستظهر في نتائج البحث، ما يتيح لأي مستخدم مهتم الانضمام إليها.
- خاص: يتم إخفاء المنافسة عن العرض العلني. لن يظهر في عمليات البحث، ويمكن للمستخدمين الذين تدعوهم فقط المشاركة فيه.
المستخدمون الذين يمكنهم الانضمام
- أي شخص: يشبه ذلك سياسة الباب المفتوح. يمكن لأي مستخدم على Kaggle الانضمام إلى مسابقتك.
- يمكن للمستخدمين الذين يملكون رابطًا فقط: هذا الخيار أكثر حصرية. سيتم إنشاء رابط خاص، ولن يتمكّن من الانضمام إلى المجموعة سوى المستخدمين الذين لديهم هذا الرابط.
- قائمة عناوين البريد الإلكتروني ذات الوصول المقيَّد: هذا هو الخيار الأكثر تحكّمًا. يمكنك تقديم قائمة بعناوين بريد إلكتروني أو نطاقات محدّدة (مثل @yourschool.edu)، ولن يتمكّن من الانضمام إلى المجموعة سوى المستخدمين الذين لديهم هذه العناوين.
سنتحدث أكثر عن الإعداد تفعيل دفاتر الملاحظات والنماذج لاحقًا. في الوقت الحالي، تأكَّد من تفعيلها. بالنسبة إلى مجموعة المنافسين في مثالنا، اضبط هذه الإعدادات على خاص والأشخاص الذين لديهم الرابط فقط.
اقرأ البنود ووافِق عليها، ثم انقر على إنشاء مسابقة.
4. فهم المنافسة وإعدادها
وراء الكواليس، أنشأنا مسابقة جديدة تمامًا تتضمّن مجموعة بيانات فريدة. لنراجع سريعًا إعدادات المنافسة.
علامة التبويب "المضيف"
تحتوي علامة التبويب "المضيف" على كل ما تحتاج إليه كمضيف لإعداد مسابقتك بشكلٍ صحيح. اطّلِع على قائمة الصفحات على يسار الصفحة:

التفاصيل الأساسية
يتضمّن هذا القسم ما يلي:
- للجمهور العام
- الخصوصية وإمكانية الوصول والمراجع
- المخطط الزمني
- النتائج والفرق
لقد تناولنا القسمَين "عام" و"الخصوصية" عند إطلاق المسابقة.
المخطط الزمني
تراعي هذه السمة المنطقة الزمنية.

النتائج والفريق
يتيح لك قسم "التسجيل والفريق" التحكّم في عدد الأشخاص الذين يمكنهم الانضمام إلى فريق، وعدد المرات التي يمكنهم فيها إرسال المحتوى كل يوم، وعدد المحتوى الذي يجب اختياره للتقييم النهائي.

الصور
تتيح لك الصور تخصيص البانر والصورة المصغّرة للمسابقة. سيؤثر ذلك في الصفحة الرئيسية للمسابقة بالإضافة إلى إدخال بطاقة بيانات المسابقة.

المضيفون
يمكنك هنا إضافة مستخدمين آخرين على Kaggle كمضيفين للمسابقة. سيتمكّن المضيفون الآخرون من الوصول الكامل إلى المسابقة (بما في ذلك إطلاقها).

مقياس التقييم
علامة التبويب "مقياس التقييم" هي أساس المسابقة. عند إنشاء مسابقة من البداية، عليك التفكير مليًا في مقياس التقييم (أو التسجيل) الذي ستستخدمه، وتحميل ملف الحلّ، وتحديد تقسيم الاختبار بين العام والخاص، وتقديم نموذج إرسال. ومع ذلك، بما أنّنا استخدمنا مسابقة من إنشاء الذكاء الاصطناعي، لسنا بحاجة إلى اتّخاذ أي من هذه الإجراءات.
مقياس تسجيل النقاط
يحدّد هذا الإعداد كيفية تسجيل نتيجة عملية إرسال مقارنةً بملف الحلّ. يتوفّر لكل مقياس مستندات ورمز برمجي فعلي.
ملف الحل
بما أنّنا نستخدم مسابقة تم إنشاؤها، سيكون هذا الملف فريدًا لمسابقتك.

تتيح لك ميزة "أخذ عيّنات من الحلول" تعديل مقدار ملف الحلّ المستخدَم لتسجيل النتائج في قوائم الصدارة العلنية أثناء المسابقة، مقارنةً بعدد الصفوف المستخدَمة لتحديد قائمة الصدارة النهائية. أثناء المسابقة، سيُسمح للمستخدمين باختيار (استنادًا إلى إعداد "عمليات الإرسال الخاصة التي تم تسجيل نتائجها") عمليات الإرسال التي سيتم استخدامها في قائمة الصدارة النهائية (المعروفة هنا باسم "قائمة الصدارة الخاصة").
تضمن هذه العملية عدم مكافأة المنافسين على المطابقة بشكل مفرط أو إرسال عدد كبير من عمليات الإرسال.
عمليات الإرسال في وضع الحماية
تتيح هذه الميزة لمضيفي المسابقات التأكّد من أنّ نظام تسجيل النقاط يعمل على النحو المتوقّع، كما تتيح لهم ضبط "مقاييس" للإجابات التي يقدّمها المتسابقون للمقارنة بها. ستظهر نتائج قياس الأداء هذه في لوحة الصدارة.
الفِرق والمهام
أثناء المسابقة، يتيح ذلك للمضيفين تنزيل جميع النتائج، بالإضافة إلى إدارة الفرق. تكون هذه السمة فارغة قبل بدء المنافسة.
قائمة التحقّق قبل الإطلاق
سنتناول هذا الموضوع في القسم التالي.
5- إطلاق المسابقة
في أعلى صفحة المسابقة، انقر على الزرّ "قائمة التحقّق من الإطلاق".
قائمة التحقّق قبل الإطلاق
تعرض "قائمة التحقّق من الإطلاق" الخطوات المطلوبة التي يجب اتّخاذها قبل إطلاق مسابقة. بما أنّنا بدأنا من نموذج مسابقة، تكون معظم هذه الخطوات مكتملة. لم يتبقَّ سوى مهمتَين، وهما تحديد موعد نهائي وتعديل قواعد المسابقة.

ضبط الموعد النهائي
انقر أولاً على السهم بجانب "تحديد الموعد النهائي". تستمر المسابقات عادةً شهرَين على الأقل. الحدّ الأقصى لمدة المسابقة هو عام واحد.
تعديل القواعد
يجب تعديل قواعد المسابقة من النموذج التلقائي قبل إطلاقها. إذا كنت تنظّم هذه المسابقة لصف أو مجموعة، هذا هو المكان المناسب لوضع أي معلومات حول التوقعات.
إطلاق
نحن جاهزون للإطلاق! يمكنك المتابعة وإطلاق مسابقتك. أنت الآن جاهز لانضمام المنافسين!
6. تجربة المنافس
بعد إطلاق المنافسة، لنلقِ نظرة على تجربة المنافسين. سنتناول كيفية الانضمام إلى المسابقة وإرسال مشاركة. للمشاركة، يمكنك الانضمام إلى "مسابقة العروض التوضيحية في Google IO" من هنا: https://www.kaggle.com/competitions/google-io-demo-competition
الانضمام إلى المسابقة
بعد الانتقال إلى الصفحة الرئيسية للمسابقة، انقر على الزر "الانضمام إلى المسابقة" في أعلى يسار الصفحة، ثم اقرأ القواعد ووافق عليها.
إرسال أول عيّنة تم إرسالها
انتقِل إلى علامة التبويب "الرمز" (Code) وانقر على "دفتر ملاحظات جديد" (New Notebook). سيؤدي هذا إلى فتح دفتر ملاحظات يتيح لك إرسال مشاركتك في المسابقة.
سنبدأ بقراءة بيانات التدريب والاختبار
# read the test and train data
train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')
test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')
لنلقِ نظرة على البيانات.
# إلقاء نظرة على بعض البيانات
train.head()
لنجهّز البيانات لاستخدامها في التدريب. في هذه الحالة، سنستبعد العمود Sex لأنّه لا يتضمّن قيمة رقمية. (ملاحظة: سيؤدي معرفة كيفية تضمين ذلك إلى تحسين أداء النموذج).
# استبعاد النتائج من بيانات الاختبار
data = train.drop(columns=[‘Age', ‘Sex'])
answers = train[‘Age']
بعد ذلك، ننشئ نموذجًا. في هذه الحالة، ننشئ نموذج غابة عشوائية.
# عمليات استيراد للنموذج
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
model = RandomForestRegressor()
# train the model
model.fit(data, answers)
إنشاء عيّنة تم إرسالها:
predictions = model.predict(test.drop(columns=[‘Sex']))
submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})
submission.to_csv(‘submission.csv', index=False)
بعد ذلك، يمكنك إرسال مشاركتك في المسابقة من خلال النقر على "إرسال المشاركة في المسابقة" في القائمة الجانبية اليمنى.

نصائح لإجراء مسابقة رائعة
- احرص على تضمين دفتر ملاحظات تمهيدي يتيح إرسالًا أساسيًا
- تشجيع المشاركين على استخدام المناقشات ومشاركة دفاتر الملاحظات في وقت مبكر من المسابقة
- الاستمتاع بوقتك

