ברוכים הבאים ליחידת הלימוד "סיווג: שיטות נוספות" בקורס כריית מידע (20595). יחידה זו מרחיבה את היכרותנו עם עולם הסיווג, מעבר לאלגוריתמים בסיסיים כמו עצי החלטה, ומציגה גישות חדשות ויעילות לפתרון בעיות סיווג מורכבות. נתמקד באלגוריתמים פופולריים כמו Naive Bayes, k-NN ושיטות למידת אנסמבל, תוך הבנת עקרונותיהם, יתרונותיהם וחסרונותיהם, וכיצד לבחור את השיטה המתאימה לבעיה נתונה. הבנה מעמיקה של שיטות אלו חיונית להצלחה בקורס וביישומים מעשיים.
סיווג בייסיאני: מודל Naive Bayes
מודל Naive Bayes הוא אלגוריתם סיווג הסתברותי המבוסס על משפט בייס, תוך הנחת אי-תלות חזקה (נאיבית) בין התכונות בהינתן המחלקה. למרות ההנחה הפשטנית, הוא מפגין ביצועים טובים במקרים רבים, במיוחד עם מערכי נתונים גדולים.
יתרונות וחסרונות
- יתרונות: פשוט ליישום, מהיר לאימון וחיזוי, דורש מעט נתוני אימון יחסית, עמיד לרעש.
- חסרונות: הנחת אי-התלות הנאיבית לעיתים קרובות אינה מתקיימת במציאות, מה שעלול לפגוע בדיוק. רגיש לבעיית "אפס הסתברות" (כאשר תכונה מסוימת לא הופיעה במחלקת אימון מסוימת).
סיווג מבוסס מופעים: אלגוריתם k-NN
אלגוריתם k-Nearest Neighbors (k-NN) הוא אלגוריתם "למידה עצלה" (Lazy Learning) לא פרמטרי, שבו רוב החישוב מתבצע בזמן החיזוי ולא בזמן האימון. הוא מסווג מופע חדש על ידי הקצאת המחלקה הנפוצה ביותר בקרב k השכנים הקרובים ביותר שלו במרחב התכונות.
בחירת k ובעיות נפוצות
- בחירת k: ערך k קטן רגיש לרעש, ערך k גדול מטשטש את הגבולות בין המחלקות. בחירת k אופטימלי נעשית לרוב באמצעות אימות צולב.
- קשיים: רגיש לקנה מידה של תכונות (דורש נורמליזציה), יקר חישובית בזמן חיזוי עבור מערכי נתונים גדולים, מושפע מ"קללת המימד" (Curse of Dimensionality) במרחבים בעלי מימדים רבים.
למידת אנסמבל (Ensemble Learning)
למידת אנסמבל היא גישה המשלבת מספר רב של "לומדים חלשים" (Weak Learners) כדי ליצור "לומד חזק" (Strong Learner) בעל ביצועים טובים יותר מאשר כל לומד בודד. הרעיון הוא ששילוב של מומחים רבים, גם אם כל אחד מהם אינו מושלם, יכול להוביל להחלטה קולקטיבית מדויקת יותר.
Bagging (תיקוף)
יוצרת מספר מודלים עצמאיים על דגימות שונות (עם החזרה) ממערך האימון המקורי. התחזיות של המודלים משולבות באמצעות הצבעה (לסיווג) או ממוצע (לרגרסיה). Random Forest הוא דוגמה פופולרית המשתמשת בעצי החלטה כ"לומדים חלשים".
Boosting (הגברה)
בונים מודלים באופן סדרתי, כאשר כל מודל מתמקד בתיקון הטעויות של המודל הקודם. מופעים שסווגו לא נכון מקבלים משקל גבוה יותר במודל הבא. AdaBoost ו-Gradient Boosting הם אלגוריתמים נפוצים בגישה זו.
שאלות לדיון
- השוו בין אלגוריתם Naive Bayes לבין אלגוריתם k-NN בהיבטים של "למידה עצלה" מול "למידה חרוצה", רגישות לנתונים חסרים וקללת המימד.
- הסבירו כיצד שיטות Bagging ו-Boosting תורמות לשיפור ביצועי הסיווג, ומה ההבדל העיקרי בגישה שלהן. תנו דוגמה לאלגוריתם נפוץ מכל גישה.
- תיאורטית, מתי תעדיפו להשתמש ב-Naive Bayes ומתי ב-k-NN, בהתחשב במאפייני מערך הנתונים (גודל, מימדיות, סוג תכונות)?
נקודות לתשובת מודל
- Naive Bayes vs. k-NN:
- Naive Bayes: "למידה חרוצה" (eager) – בונה מודל הסתברותי בשלב האימון. פחות רגיש לנתונים חסרים אם מטופלים נכון. פחות מושפע מקללת המימד מאשר k-NN.
- k-NN: "למידה עצלה" (lazy) – שומר את כל הנתונים ודוחה חישובים לזמן החיזוי. רגיש יותר לנתונים חסרים (דורש טיפול מקדים). מושפע מאוד מקללת המימד.
- Bagging vs. Boosting:
- Bagging: בונה מודלים במקביל על דגימות שונות (עם החזרה). מפחית שונות (Variance) ובכך מונע התאמת יתר. דוגמה: Random Forest.
- Boosting: בונה מודלים באופן סדרתי, כאשר כל מודל מתקן את טעויות קודמו. מפחית הטיה (Bias) וגם שונות. דוגמה: AdaBoost, Gradient Boosting.
- בחירת אלגוריתם:
- Naive Bayes: עדיף כאשר יש הנחה סבירה לאי-תלות בין תכונות, מערכי נתונים גדולים מאוד, או כאשר נדרש מודל מהיר לאימון וחיזוי.
- k-NN: עדיף כאשר מערך הנתונים קטן יחסית, אין צורך בבניית מודל מפורש, ונדרשת גמישות (לא פרמטרי). פחות מתאים למערכי נתונים גדולים או בעלי מימדים רבים ללא טכניקות הפחתת מימד.