המונח מאפיין הוא שם נרדף למספר הרכיבים בוקטור מאפיינים. חלק מהתכונות הקטגוריות הן בעלות מאפיינים פחות מגוונים. לדוגמה:
שם התכונה | מספר הקטגוריות | קטגוריות לדוגמה |
---|---|---|
snowed_today | 2 | True, False |
skill_level | 3 | מתחילים, משתמשים מתקדמים, מומחים |
season | 4 | חורף, אביב, קיץ, סתיו |
day_of_week | 7 | שני, שלישי, רביעי |
כוכב לכת | 8 | כוכב חמה, נוגה, כדור הארץ |
אם למאפיין קטגוריאלי יש מספר קטן של קטגוריות אפשריות, אפשר לקודד אותו כמילון. כשמשתמשים בקידוד של אוצר מילים, המודל מתייחס לכל ערך קטגורי אפשרי כמאפיין נפרד. במהלך האימון, המודל לומד משקלים שונים לכל קטגוריה.
לדוגמה, נניח שאתם יוצרים מודל לחיזוי המחיר של רכב על סמך, בין היתר, מאפיין קטגורי בשם car_color
.
יכול להיות שמכוניות אדומות שווה יותר ממכוניות ירוקות.
מאחר שהיצרנים מציעים מספר מוגבל של צבעים חיצוניים, המאפיין car_color
הוא מאפיין קטגוריאלי בעל ממדים נמוכים.
באיור הבא מוצגת מילון (ערכים אפשריים) של car_color
:
תרגול: בדיקת האינטואיציה
"Red"
היא לא מספר נקודה צפה. צריך
להמיר מחרוזות כמו "Red"
למספרים עם נקודה צפה (floating-point).
מספרי אינדקס
מודלים של למידת מכונה יכולים לבצע מניפולציות רק במספרים בספרות עשרוניות. לכן, צריך להמיר כל מחרוזת למספר אינדקס ייחודי, כפי שמתואר באיור הבא:
פעילות גופנית: בדקו את האינטואיציה
"Black"
(מספר אינדקס 5) גדולה פי 5 מ-"Orange"
(מספר אינדקס 1).
"Black"
(מספר אינדקס 5) משמעותי לדגם פי 5 יותר מ-"Orange"
(מספר אינדקס 1).
קידוד One-hot
השלב הבא ביצירת אוצר מילים הוא להמיר כל מספר אינדקס לקידוד one-hot שלו. בקידוד one-hot:
- כל קטגוריה מיוצגת על ידי וקטור (מערך) של N אלמנטים, כאשר N הוא מספר הקטגוריות. לדוגמה, אם ל-
car_color
יש שמונה קטגוריות אפשריות, אז וקטור ה-one-hot שמייצג אותו יכלול שמונה רכיבים. - בדיוק אחד מהאלמנטים בוקטור one-hot מקבל את הערך 1.0, וכל שאר הרכיבים מקבלים את הערך 0.0.
לדוגמה, בטבלה הבאה מוצגת הקידוד של one-hot לכל הערך ב-car_color
:
תכונה | אדום | Orange | כחול | צהוב | ירוק | שחור | סגול | חום |
---|---|---|---|---|---|---|---|---|
'אדום' | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
"Orange" | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
'כחול' | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
'צהוב' | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"ירוק" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
"שחור" | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
'Purple' | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
'חום' | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
הווקטור של ערכים חד-ממדיים, ולא המחרוזת או מספר האינדקס, מועברים לווקטור המאפיינים. המודל לומד משקל נפרד לכל רכיב בווקטור המאפיין.
האיור הבא מרמז על הטרנספורמציות השונות בייצוג של אוצר המילים:
ייצוג דליל
מאפיין שהערכים שלו הם בעיקר אפס (או ריקים) נקרא מאפיין דל. הרבה תכונות קטגוריות, כמו car_color
, הן בדרך כלל תכונות דלילות.
ייצוג דל פירושו שמאחסנים את המיקום של הערך 1.0 בווקטור דל. לדוגמה, הווקטור החד-חם של "Blue"
הוא:
[0, 0, 1, 0, 0, 0, 0, 0]
מכיוון ש-1
נמצא במיקום 2 (כשמתחילים את הספירה ב-0), הייצוג הדליל של וקטור ה-one-hot הקודם הוא:
2
שימו לב שהייצוג הדליל צורך הרבה פחות זיכרון מאשר הווקטור של שמונה הרכיבים מסוג one-hot. חשוב לזכור שהאימון של המודל צריך להתבצע על וקטור ה-one-hot, ולא על הייצוג הדליל.
חריגים בנתונים קטגוריים
בדומה לנתונים מספריים, גם נתונים קטגוריאליים מכילים ערכים חריגים. נניח ש-car_color
מכיל לא רק את הצבעים הפופולריים, אלא גם כמה צבעים חריגים שמשמשים לעתים רחוקות, כמו "Mauve"
או "Avocado"
.
במקום להקצות לכל אחד מהצבעים החריגים האלה קטגוריה נפרדת, אפשר לקבץ אותם בקטגוריה אחת כללית שנקראת out-of-vocabulary (OOV). במילים אחרות, כל הצבעים של ערכים חריגים מקובצים לקטגוריה אחת של ערכים חריגים. המערכת לומדת משקל יחיד לקטגוריה הזו של חריגים.
קידוד של מאפיינים קטגוריאליים בממדים גבוהים
למאפיינים קטגוריאליים מסוימים יש מספר רב של מאפיינים, כמו אלה שמפורטים בטבלה הבאה:
שם התכונה | מספר הקטגוריות | קטגוריות לדוגמה |
---|---|---|
words_in_english | ~500,000 | "happy", "walking" |
US_postal_codes | כ-42,000 | "02114", "90301" |
last_names_in_Germany | כ-850,000 | "Schmidt", "Schneider" |
כשמספר הקטגוריות גבוה, בדרך כלל לא כדאי להשתמש בקידוד one-hot. בדרך כלל האפשרות הטמעה מפורטת יותר במודול הטמעה נפרד. הטמעות מפחיתות משמעותית את מספר המאפיינים, מה שמועיל למודלים בשתי דרכים חשובות:
- אימון המודל בדרך כלל מהיר יותר.
- בדרך כלל, המודל שנוצר מסיק תחזיות מהר יותר. כלומר, יש למודל זמן אחזור קצר יותר.
גיבוב (נקרא גם טריק הגיבוב) הוא דרך פחות נפוצה לצמצום מספר המאפיינים.