ביחידה הזו ראינו דרכים למיפוי נתונים גולמיים לווקטורים של מאפיינים מתאימים. מאפיינים מספריים טובים כוללים את המאפיינים שמפורטים בקטע הזה.
שם ברור
לכל תכונה צריך להיות משמעות ברורה, הגיונית ומובן לכל אדם בפרויקט. לדוגמה, המשמעות של ערך המאפיין הבא מבלבלת:
לא מומלץ
house_age: 851472000
לעומת זאת, השם והערך הבאים של התכונה ברורים הרבה יותר:
מומלץ
house_age_years: 27
נבדקו או נבחנו לפני האימון
הקדשנו זמן רב במודול הזה לערכים חריגים, אבל הנושא חשוב מספיק כדי להזכיר אותו שוב. במקרים מסוימים, נתונים לא תקינים (ולא בחירות הנדסיות שגויות) גורמים לערכים לא ברורים. לדוגמה, הערך הבא של user_age_in_years
הגיע ממקור שלא בדק אם הערכים מתאימים:
לא מומלץ
user_age_in_years: 224
אבל אנשים יכולים להיות בני 24:
מומלץ
user_age_in_years: 24
בודקים את הנתונים!
הגיוני
'ערך קסום' הוא ניתוק מכוון בתכונה רציפה. לדוגמה, נניח שתכונה רציפה בשם watch_time_in_seconds
יכולה להכיל כל ערך של נקודה צפה בין 0 ל-30, אבל מייצגת את היעדר המדידה בערך הקסום -1:
לא מומלץ
watch_time_in_seconds: -1
אם הערך של watch_time_in_seconds
יהיה -1, המודל ייאלץ לנסות להבין מה המשמעות של צפייה בסרט בכיוון הפוך בזמן. סביר להניח שהמודל שייווצר לא יניב תחזיות טובות.
שיטה טובה יותר היא ליצור מאפיין בוליאני נפרד שמציין אם מסופק ערך watch_time_in_seconds
או לא. לדוגמה:
מומלץ
watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=Truewatch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False
זוהי דרך לטפל במערך נתונים רציף עם ערכים חסרים. עכשיו נבחן מאפיין מספרי מנותק, כמו product_category
, שהערכים שלו חייבים להשתייך לקבוצה סופית של ערכים. במקרה כזה, כשחסר ערך, מציינים את הערך החסר באמצעות ערך חדש בקבוצה המוגבלת. כשמשתמשים במאפיין בדיד, המודל לומד משקלים שונים לכל ערך, כולל משקלים מקוריים למאפיינים חסרים.
לדוגמה, אפשר לדמיין ערכים אפשריים שתואמים לקבוצה:
{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.