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

1. מבוא

47566e1490c16443.png

תאריך העדכון האחרון: 10 במאי 2024

מה זה Kaggle?

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

מה תפַתחו

ב-Codelab הזה תיצרו, תגדירו ותשיקו תחרות kaggle. תלמדו על החוויה של המתחרים ותבינו שיטות מומלצות לניהול תחרות מעניינת.

מה תלמדו

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

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

מה צריך להכין

  • דפדפן אינטרנט שהופעל לאחרונה
  • ידע בסיסי בפיתון

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 ובוחרים באפשרות 'תחרות חדשה שנוצרה על ידי AI'.

2629bf77a282a46c.png

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

פרטי התחרות

2dd2228b9d686a6e.png

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

חשיפה וגישה

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

5c7dcae412ddd574.png

חשיפה

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

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

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

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

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

4. הבנה והגדרה של התחרות

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

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

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

bcedd6768cc4f32c.png

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

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

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

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

ציר הזמן

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

7141f4aea90bccb0.png

ניקוד ו צוות

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

5efb6387612db941.png

תמונות

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

6dfd442376a1c702.png

מארחים

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

8f8c90eb6baa7747.png

מדד הערכה

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

מדד דירוג

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

קובץ פתרונות

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

89fa1f42d177505a.png

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

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

שליחת אימיילים ב-Sandbox

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

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

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

Launch Checklist

כל זה יתואר בקטע הבא.

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

50b03df072c02e6a.png

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

Launch Checklist

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

938b9ed7bc4e0597.png

הגדרת מועד אחרון

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

עריכת כללים

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

הפעלה

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

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

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

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

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

שליחת הבקשה הראשונה

עוברים לכרטיסיית הקוד ולוחצים על New Notebook (מחברת חדשה). פעולה זו תפתח מחברת שתאפשר לכם לשלוח לתחרות.

קודם נקרא בנתוני הרכבת והבדיקה

❌# קרא את נתוני הבדיקה והרכבת

train = pd.read_csv('/kaggle/input/google-io-demo-comchromebook/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-comchromebook/test.csv')

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

🪁# לעיון בחלק מהנתונים

train.head()

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

❌ # השמטת את התוצאות מנתוני הבדיקה

data = train.drop(columns=[‘Age', 'Sex'])

תשובות = רכבת[‘Age']

ואז אנחנו יוצרים מודל. במקרה הזה אנחנו יוצרים מודל יער אקראי.

ייבוא של Ⰳ# מהמודל

from sklearn.model_selection import train_test_split

מייבוא של RandomForestRegressor באמצעות sklearn.ensemble

מייבוא של הפרמטר sklearn.metrics בשדה mean_ABolute_error

model = RandomForestRegressor()

# לאמן את המודל

model.fit(data, answers)

יצירת שליחה:

❌predictions = model.predict(test.drop(columns=[‘Sex']))

submission = pd.DataFrame({‘id&#39;: test[‘id&#39;], ‘Age&#39;: predictions})

substitute.to_csv(‘submission.csv', index=False)

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

1cf17449cae53abe.png

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

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