שיפור המיומנויות בארגון בלמידת מכונה/AI באמצעות Kaggle

1. מבוא

47566e1490c16443.png

העדכון האחרון: 2024-05-10

מה זה Kaggle?

‫Kaggle היא הקהילה הגדולה ביותר בתחום הבינה המלאכותית ולמידת המכונה, והפלטפורמה האולטימטיבית לחובבי מדע הנתונים ולמידת המכונה בכל הרמות. כאן אפשר להתעדכן בטכניקות ובטכנולוגיות העדכניות ביותר. גלו מאגר נרחב של מערכי נתונים, מחברות ומודלים שעברו אימון מראש כדי להתחיל את הפרויקט הבא. להשתתף בתחרויות, ללמוד מקורסים ולהתחבר לקהילה מגוונת של יותר מ-18 מיליון משתמשים מכל העולם. לא משנה אם אתם מתחילים או מקצוענים, Kaggle הוא המקום לחדד את הכישורים שלכם, להישאר בחזית ולשתף פעולה בפרויקטים חדשניים.

מה תפַתחו

ב-codelab הזה תלמדו איך ליצור תחרות ב-Kaggle, להגדיר אותה ולהשיק אותה. תעברו על חוויית המשתמש של המתחרים ותבינו מהן השיטות המומלצות להפעלת תחרות מעניינת.

מה תלמדו

  • הסבר על יצירה וניהול של תחרות ב-Kaggle מצד המארח
  • איך עוברים את התהליך של ניתוח חוויית השימוש של המתחרים, משלב המחקר ועד לשלב השליחה
  • שיטות מומלצות לניהול תחרות מעניינת

ב-Codelab הזה נתמקד ביצירת תחרות במהירות, תוך שימוש בספריית התחרויות ההולכת וגדלה של Kaggle.

מה תצטרכו

  • דפדפן אינטרנט עדכני
  • ידע בסיסי ב-Python

2. תהליך ההגדרה

יצירת חשבון Kaggle

נכנסים לאתר Kaggle ‏ (https://www.kaggle.com/) ולוחצים על 'הרשמה' כדי ליצור חשבון בחינם.

אימות החשבון

  1. בפינה השמאלית העליונה של הדף, לוחצים על תמונת הפרופיל.
  2. לוחצים על 'הפרופיל שלך'.
  3. לוחצים על הלחצן 'הגדרות' בצד שמאל של תוכן הפרופיל.
  4. בקטע 'אימות באמצעות הטלפון', פועלים לפי ההוראות לאימות החשבון.

3. יצירת התחרות הראשונה

חדש: תבניות ליצירת תחרויות שנוצרו על ידי AI

תחרויות שנוצרו על ידי AI הן תכונה חדשה ב-Kaggle שמאפשרת למשתמשים ליצור תחרויות ללמידת מכונה במהירות ובקלות. היא משתמשת ב-AI כדי ליצור מערכי נתונים סינתטיים שמדמים את המאפיינים הסטטיסטיים של מערכי נתונים קיימים, בלי לכלול פרטים אישיים מזהים.

ככה זה עובד:

  1. בחירת תבנית: בוחרים מתוך רשימת תבניות שמבוססות על משימות שונות של למידת מכונה (למשל, סיווג, רגרסיה).
  2. ה-AI יוצר מערך נתונים: ה-AI של Kaggle יוצר מערך נתונים חדש לתחרות על סמך התבנית שבחרתם. קבוצת הנתונים הזו דומה לקבוצת הנתונים המקורית, אבל היא מבוססת על קבוצת משנה של תכונות והתפלגויות התכונות שלה שונות במקצת.
  3. התאמה אישית של התחרות: מזינים פרטים בסיסיים כמו שם התחרות, תיאור וציר זמן. אתם יכולים גם לבחור את הגדרות הפרטיות של התחרות.
  4. השקה: אחרי שמאשרים את הפרטים ומגדירים את ההשקה, אפשר להשיק את התחרות.

התכונה הזו מייעלת את תהליך יצירת התחרות, הופכת אותו לנגיש ליותר משתמשים ומאפשרת להם להתמקד בהיבטים של למידת מכונה ולא בהכנת מערך הנתונים.

יצירת תחרות

עוברים אל https://www.kaggle.com/competitions/new ובוחרים באפשרות New AI Generated Competition (תחרות חדשה שנוצרה על ידי AI).

2629bf77a282a46c.png

בוחרים בתחרות 'רגרסיה עם מערך נתונים של גיל סרטן'.

פרטי התחרות

2dd2228b9d686a6e.png

ממלאים שם ותיאור. לדוגמה, אפשר להשתמש בכותרת 'תחרות הסרטנים הראשונה של <השמות שלכם>' ובכותרת המשנה 'יצירת התחרות הראשונה שלי כדי לראות איך זה עובד'. שימו לב: כתובת ה-URL של המתחרה מתמלאת אוטומטית על סמך הכותרת.

חשיפה וגישה

עכשיו צריך להגדיר את הרשאות הגישה לתחרות.

5c7dcae412ddd574.png

חשיפה

  • גלוי לכולם: כל אחד יכול לראות את התחרות שלכם ב-Kaggle. הוא יופיע בתוצאות החיפוש, כך שכל מי שמעוניין יוכל להצטרף.
  • פרטי: המתחרים שלכם מוסתרים מהתצוגה הציבורית. האירוע לא יופיע בחיפושים, ורק אנשים שהזמנתם יוכלו להשתתף בו.

מי יכול להצטרף

  • כל אחד: זה כמו מדיניות של דלת פתוחה. כל אחד ב-Kaggle יכול להצטרף לתחרות שלכם.
  • רק אנשים שקיבלו קישור: זו גישה בלעדית יותר. ייווצר קישור מיוחד, ורק אנשים שיש להם את הקישור יוכלו להצטרף.
  • רשימת כתובות אימייל עם גישה מוגבלת: זו האפשרות עם הכי הרבה שליטה. אתם מספקים רשימה של כתובות אימייל או דומיינים ספציפיים (למשל @yourschool.edu), ורק אנשים עם הכתובות האלה יכולים להצטרף.

בהמשך נרחיב על ההגדרה הפעלת מחברות ומודלים. בינתיים, מוודאים שהמתג מופעל. בדוגמה שלנו, אנחנו מגדירים את ההגדרות האלה לפרטי ורק אנשים עם הקישור.

קוראים את התנאים ומסכימים להם, ואז לוחצים על יצירת תחרות.

4. הסבר על המתחרים ועל הגדרתם

מאחורי הקלעים יצרנו תחרות חדשה לגמרי עם מערך נתונים ייחודי. בואו נעבור במהירות על הגדרות התחרות.

כרטיסיית המארח

בכרטיסייה 'מארח' מופיע כל מה שצריך כדי להגדיר את התחרות בצורה נכונה. במיוחד, אפשר לראות את רשימת הדפים בצד שמאל של הדף:

bcedd6768cc4f32c.png

פרטים בסיסיים

הקטע הזה כולל:

  • כללי
  • פרטיות, גישה ומשאבים
  • ציר הזמן
  • ניקוד וקבוצות

הסברנו על הקטעים 'כללי' ו'פרטיות' כשהשקנו את התחרות.

ציר הזמן

תאריך הסיום של התחרות מודע לאזור הזמן.

7141f4aea90bccb0.png

ניקוד וצוות

בקטע 'ניקוד וצוות' אפשר לקבוע כמה אנשים יכולים להצטרף לצוות, כמה פעמים הם יכולים לשלוח תשובות בכל יום וכמה מהתשובות שלהם הם צריכים לבחור להערכה סופית.

5efb6387612db941.png

תמונות

התמונות מאפשרות לכם להתאים אישית את הבאנר והתמונה הממוזערת של התחרות. השינוי הזה ישפיע על דף הבית של התחרות וגם על רשומת התחרות.

6dfd442376a1c702.png

מארחים

כאן אפשר להוסיף משתמשי Kaggle אחרים כמארחים של התחרות. למארחים אחרים תהיה גישה מלאה (כולל הפעלה) לתחרות שלכם.

8f8c90eb6baa7747.png

מדד הערכה

הכרטיסייה 'מדד ההערכה' היא הלב של התחרות. כשיוצרים תחרות מאפס, צריך לחשוב היטב איזה מדד להערכה (או לדירוג) רוצים להגדיר, להעלות את קובץ הפתרון, להגדיר את החלוקה של בדיקת הנתונים לציבורית ולפרטית ולספק דוגמה לשליחה. אבל מכיוון שהשתמשנו בתחרות שנוצרה, אנחנו לא צריכים לעשות שום דבר מזה!

מדד הניקוד

ההגדרה הזו קובעת איך המערכת תיתן ציון לשליחה בהשוואה לקובץ הפתרון. לכל מדד יש תיעוד וקוד בפועל.

קובץ פתרון

מכיוון שאנחנו משתמשים בתחרות שנוצרה, הקובץ הזה ייחודי לתחרות שלכם.

89fa1f42d177505a.png

הדגימה של הפתרון מאפשרת לכם לשנות את כמות הקבצים של הפתרון שמשמשים לדירוג ההגשות במהלך התחרות (בטבלת המובילים הציבורית), לעומת מספר השורות שמשמשות לקביעת טבלת המובילים הסופית. במהלך התחרות, המשתמשים יוכלו לבחור (בהתאם להגדרה 'הגשות פרטיות עם ניקוד') אילו מההגשות שלהם ישמשו לטבלת המובילים הסופית (שנקראת כאן 'טבלת מובילים פרטית').

התהליך הזה מבטיח שמתחרים לא יקבלו תגמול על התאמת יתר או על הצפה של הגשות.

שליחת תכנים לארגז חול

ההגדרות האלה מאפשרות למארחי התחרות לוודא שהניקוד פועל כמצופה, ולהגדיר הגשות של 'נקודות השוואה' כדי שהמתחרים יוכלו להשוות את עצמם אליהן. ההגשות האלה של נקודות השוואה יופיעו בטבלת המובילים.

צוותים וחומרים למשלוח

במהלך התחרות, המארחים יכולים להוריד את כל התוצאות ולנהל את הצוותים. לפני תחילת התחרות, השדה הזה ריק.

Launch Checklist

הנושא הזה יוסבר בקטע הבא.

5. השקת התחרות

50b03df072c02e6a.png

בחלק העליון של דף התחרות, לוחצים על הלחצן 'רשימת משימות להפעלה'.

Launch Checklist

ברשימת המשימות להשקה מפורטים השלבים שצריך לבצע לפני השקת תחרות. מכיוון שכבר התחלנו מתבנית של תחרות, רוב השלבים האלה כבר הושלמו. נותרו רק שתי משימות: קביעת דדליין ועדכון כללי התחרות.

938b9ed7bc4e0597.png

הגדרת דדליין

קודם לוחצים על החץ ליד 'הגדרת תאריך יעד'. תחרויות נמשכות בדרך כלל לפחות כמה חודשים. האורך המקסימלי של תחרות הוא שנה אחת.

עריכת כללים

לפני ההפעלה, צריך לעדכן את כללי התחרות מהתבנית שמוגדרת כברירת מחדל. אם אתם מנהלים את התחרות הזו עבור כיתה או קבוצה, זה מקום טוב להוסיף בו מידע על הציפיות.

השקה

הכול מוכן להפעלה! אפשר להשיק את התחרות. עכשיו אפשר להזמין מתחרים להצטרף!

6. חוויית המתחרים

אחרי שהתחלתם את התחרות, כדאי לראות איך היא נראית למתחרים. נפרט על הצטרפות לתחרות ועל שליחת חומרים. כדי להשתתף בתחרות ההדגמות של Google IO, אפשר להיכנס לכתובת: https://www.kaggle.com/competitions/google-io-demo-competition

הצטרפות לתחרות

אחרי שמגיעים לדף הבית של התחרות, לוחצים על הלחצן 'הצטרפות לתחרות' בפינה השמאלית העליונה, קוראים את הכללים ומאשרים אותם.

שליחת התוכן הראשון

עוברים לכרטיסייה 'קוד' ולוחצים על 'מחברת חדשה'. תיפתח מחברת שדרכה תוכלו לשלוח את הפתרון לתחרות.

קודם נקרא את נתוני האימון והבדיקה

# 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')

בואו נסתכל על הנתונים.

# take a look at some of the data

train.head()

עכשיו נכין את הנתונים לאימון. במקרה הזה, אנחנו משמיטים את המאפיין Sex כי הוא לא ערך מספרי. (רמז: אם תחשוב איך לכלול את זה, הביצועים של המודל ישתפרו).

 # drop out the results from the test data

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)

לאחר מכן, כדי להגיש את האתר לתחרות, בוחרים באפשרות 'הגשת בקשה להשתתפות בתחרות' בתפריט שבצד שמאל.

1cf17449cae53abe.png

טיפים להפעלת תחרות מוצלחת

  1. חשוב לכלול מחברת starter שיוצרת הגשה בסיסית
  2. כדאי לעודד את המשתתפים להשתמש בפורום הדיונים ולשתף מחברות בשלב מוקדם בתחרות
  3. לא לשכוח ליהנות!