Smart-World Surf

Unit 2: הכנת נתונים והנדסת מאפיינים

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

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

חשיבות הכנת הנתונים והנדסת מאפיינים

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

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

עמודי התווך של הכנת הנתונים

טיפול בנתונים חסרים (Missing Data)

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

נתונים חסרים (Missing Data): ערכים שאינם קיימים או אינם ידועים במערך הנתונים.

מחיקת נתונים (Deletion)

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

מילוי נתונים (Imputation)

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

קידוד משתנים קטגוריאליים (Encoding Categorical Variables)

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

משתנים קטגוריאליים (Categorical Variables): מאפיינים המייצגים קטגוריות או קבוצות, לרוב ללא משמעות מספרית אינהרנטית (לדוגמה: צבע, עיר, סוג מוצר).

קידוד חד-חד ערכי (One-Hot Encoding)

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

קידוד תוויות (Label Encoding)

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

סקאלינג וסטנדרטיזציה (Scaling and Standardization)

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

סקאלינג (Scaling): שינוי קנה המידה של ערכי מאפיין לטווח מוגדר מראש (לרוב [0,1] או [-1,1]).
סטנדרטיזציה (Standardization): שינוי קנה המידה של ערכי מאפיין כך שיהיה להם ממוצע 0 וסטיית תקן 1 (התפלגות נורמלית סטנדרטית).

Min-Max Scaling (נורמליזציה)

ממפה את ערכי המאפיין לטווח ספציפי, בדרך כלל [0,1]. שימושי כאשר יש צורך בטווח מוגדר היטב, אך רגיש לערכים חריגים (Outliers) שיכולים לדחוס את שאר הנתונים לטווח צר מאוד.

Standard Scaling (סטנדרטיזציה)

ממיר את הנתונים כך שיהיה להם ממוצע של 0 וסטיית תקן של 1. פחות רגיש לערכים חריגים מאשר Min-Max Scaling, ושומר על מידע לגבי ערכים חריגים. מתאים לאלגוריתמים המניחים התפלגות נורמלית.

יצירת מאפיינים חדשים (Creating New Features)

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

  • מאפיינים פולינומיים (Polynomial Features): יצירת מאפיינים חדשים על ידי העלאת מאפיינים קיימים בחזקה (לדוגמה, x^2, x^3) או יצירת אינטראקציות ביניהם (x*y). מאפשר למודל ללכוד קשרים לא ליניאריים.
  • מאפייני אינטראקציה (Interaction Features): שילוב של שני מאפיינים או יותר כדי ליצור מאפיין חדש שמבטא את הקשר ביניהם (לדוגמה, גיל * הכנסה).
  • פירוק תאריכים/זמנים (Date/Time Features): חילוץ מידע מועיל מתאריכים (שנה, חודש, יום בשבוע, עונה, חג) שיכול להשפיע על התוצאה.
  • אגרגציה (Aggregation): סיכום נתונים מקבוצות שונות (לדוגמה, ממוצע מכירות ללקוח בחודש האחרון).
דליפת נתונים (Data Leakage): זוהי אחת הטעויות הקריטיות ביותר בהכנת נתונים. היא מתרחשת כאשר מידע מה-Test Set "זולג" ל-Train Set, מה שגורם למודל להיראות טוב יותר ממה שהוא באמת. לדוגמה, ביצוע סקאלינג או מילוי נתונים חסרים על כלל מערך הנתונים (כולל ה-Test Set) לפני פיצולו, יגרום לכך שהסטטיסטיקות (ממוצע, סטיית תקן) המשמשות לטרנספורמציה יושפעו מנתוני הבדיקה. הכלל הוא: יש להתאים (fit) את הטרנספורמציות (סקאלר, אימפיוטר) רק על נתוני האימון, ולאחר מכן ליישם (transform) אותן גם על נתוני האימון וגם על נתוני הבדיקה.

שאלות לדיון

  • אתם עובדים על פרויקט לחיזוי מחירי דירות. אחד המאפיינים הוא "מספר חדרי שינה", והוא מכיל 15% נתונים חסרים. מאפיין אחר הוא "עיר", והוא משתנה קטגוריאלי עם 50 ערכים ייחודיים. אילו שיטות טיפול הייתם בוחרים עבור כל אחד מהמאפיינים ומדוע?
  • הסבירו מתי תעדיפו להשתמש ב-Min-Max Scaling ומתי ב-Standard Scaling. תנו דוגמה לאלגוריתם שיושפע במיוחד מהבחירה ביניהם.
  • כיצד הנדסת מאפיינים יכולה לסייע למודל לזהות דפוסים שלא היו גלויים בנתונים הגולמיים? תנו דוגמה ספציפית ממאפייני תאריך/זמן.
  • מדוע דליפת נתונים נחשבת לבעיה חמורה כל כך בלמידת מכונה, וכיצד ניתן למנוע אותה באופן עקבי?

נקודות לתשובת מודל

  • לגבי נתונים חסרים: עבור "מספר חדרי שינה" (מספרי), מילוי בחציון או ממוצע (אם אין חריגים קיצוניים) עדיף על מחיקה כדי לא לאבד 15% מהנתונים. עבור "עיר" (קטגוריאלי), מילוי בשכיח (mode) הוא לרוב הבחירה הטובה ביותר.
  • לגבי קידוד: עבור "עיר" (נומינלי, 50 ערכים), One-Hot Encoding היא הבחירה העדיפה כדי למנוע יחס סדר מלאכותי, למרות שהיא תיצור 50 עמודות חדשות. יש לשקול את ההשפעה על ממדיות הנתונים.
  • Min-Max Scaling vs. Standard Scaling: Min-Max מתאים כאשר יש צורך בטווח קבוע (לדוגמה, לרשתות נוירונים עם פונקציות אקטיבציה כמו Sigmoid/Tanh). Standard Scaling מתאים כאשר הנתונים מתפלגים נורמלית בקירוב, או כאשר יש חשש מערכים חריגים, והוא עדיף לאלגוריתמים כמו SVM או רגרסיה לוגיסט
    Spotted an error or something missing?
← Previous
מבוא ללמידת מכונה
Next →
למידה מונחית: רגרסיה לינארית