התאמת יתר (overfitting) וגיזום
באמצעות האלגוריתם שמתואר למעלה, אפשר לאמן עץ החלטות שיסווג בצורה מושלמת דוגמאות לאימון, בהנחה שהדוגמאות ניתנות להפרדה. עם זאת, אם מערך הנתונים מכיל רעש, העץ הזה יתאים את עצמו יותר מדי לנתונים ויראה דיוק בדיקה נמוך.
באיור הבא מוצג מערך נתונים רועש עם קשר ליניארי בין המאפיין x לבין התווית y. בתרשים מוצג גם עץ החלטות שאומן על מערך הנתונים הזה בלי שום סוג של רגולריזציה. המודל הזה חוזה בצורה נכונה את כל הדוגמאות לאימון (החיזוי של המודל תואם לדוגמאות לאימון). עם זאת, בבדיקת מערך נתונים חדש שמכיל את אותו דפוס לינארי ותרחיש רעש שונה, הביצועים של המודל יהיו נמוכים.
איור 12. מערך נתונים רועש.
כדי להגביל את ההתאמה היתרה של עץ ההחלטות, מחילים את אחד או את שני הקריטריונים הבאים של סדרה במהלך אימון עץ ההחלטות:
- הגדרת עומק מקסימלי: מניעת התרחבות של עצי החלטות מעבר לעומק מקסימלי, למשל 10.
- הגדרת מספר מינימלי של דוגמאות בעלה: עלה עם פחות ממספר מסוים של דוגמאות לא יילקח בחשבון לצורך פיצול.
בתרשים הבא מוצגת ההשפעה של מספר מינימלי שונה של דוגמאות לכל עלה. המודל מתעד פחות מהרעש.
איור 13. מספר דוגמאות מינימלי שונה לכל עלה.
אפשר גם לבצע רגולריזציה אחרי האימון על ידי הסרה (גיזום) סלקטיבית של ענפים מסוימים, כלומר על ידי המרת צמתים מסוימים שאינם עלים לעלים. פתרון נפוץ לבחירת ההסתעפויות להסרה הוא שימוש בקבוצת נתונים לאימות. כלומר, אם הסרת ההסתעפות משפרת את איכות המודל בקבוצת הנתונים לאימות, ההסתעפות תוסר.
האיור הבא ממחיש את הרעיון הזה. כאן אנחנו בודקים אם רמת הדיוק של האימות של עץ ההחלטות תשתפר אם הצומת הירוק ללא עלים יוסב לעלה, כלומר אם נבצע גיזום של הצמתים הכתומים.
איור 14. גיזום תנאי וילדיו לצורת עלה.
בתרשים הבא מוצגת ההשפעה של שימוש ב-20% ממערך הנתונים כאימות כדי לקצץ את עץ ההחלטות:
איור 15. שימוש ב-20% ממערך הנתונים כדי לקצץ את עץ ההחלטות.
חשוב לזכור שהשימוש בקבוצת נתונים לאימות מצמצם את מספר הדוגמאות הזמינות לאימון הראשוני של עץ ההחלטות.
יוצרים רבים של מודלים מחילים כמה קריטריונים. לדוגמה, תוכלו לבצע את כל הפעולות הבאות:
- להחיל מספר מינימלי של דוגמאות לכל עלה.
- להגדיר עומק מקסימלי כדי להגביל את הגדילה של עץ ההחלטות.
- גיזום של עץ ההחלטות.
- המספר המינימלי של דוגמאות הוא 5 (
min_examples = 5
) - 10% ממערך הנתונים לאימון נשמרים לצורך אימות (
validation_ratio = 0.1
).
validation_ratio=0.0
.
הקריטריונים האלה כוללים היפר-פרמטרים חדשים שצריך לבצע להם התאמה (למשל, עומק העץ המקסימלי), לרוב באמצעות התאמה אוטומטית של ההיפר-פרמטרים. בדרך כלל, עצי החלטות מספיק מהירים כדי להתאמן לשימוש בהתאמת היפר-פרמטרים עם אימות חוצה. לדוגמה, במערך נתונים עם 'n' דוגמאות:
- מחלקים את דוגמאות האימון ל-p קבוצות לא חופפות. לדוגמה:
p=10
. - לכל הערכים האפשריים של הפרמטרים העל-היפר. לדוגמה, עומק מקסימלי ב-{3,5,6,7,8,9}, דוגמאות מינימום ב-{5,8,10,20}.
- בודקים בכל קבוצה את האיכות של עץ החלטות שאומן בקבוצות האחרות של p-1.
- מחשבים את הממוצע של ההערכה בין הקבוצות.
- בוחרים את ערך ההיפארמטר עם הערך הממוצע הטוב ביותר.
- אימון של עץ החלטות סופי באמצעות כל הדוגמאות מסוג 'n' עם ההיפארמטרים שנבחרו.
בקטע הזה דיברנו על הדרכים שבהן עצי החלטות מגבילים התאמה יתר. למרות השיטות האלה, התאמה לא מספיקה והתאמה מוגזמת הן נקודות חולשה עיקריות של עצי החלטות. ביערות החלטות נעשה שימוש בשיטות חדשות להגבלת התאמה יתר, עליהן נרחיב בהמשך.
פרשנות ישירה של עץ החלטות
קל להבין עצי החלטות. עם זאת, שינוי של כמה דוגמאות בלבד יכול לשנות לחלוטין את המבנה – ולכן את הפרשנות – של עץ ההחלטות.
בגלל האופן שבו עצי החלטות נוצרים, חלוקת הדוגמאות לאימון, אפשר להשתמש בעץ החלטות כדי לפרש את מערך הנתונים עצמו (לעומת המודל). כל עלה מייצג פינה מסוימת של מערך הנתונים.
model.describe()
.
אפשר גם לגשת לעץ ספציפי ולתצוגה שלו בתרשים באמצעות model.get_tree()
.
פרטים נוספים זמינים
במדריך של YDF לבדיקת מודלים.
עם זאת, גם פרשנות עקיפה יכולה לספק מידע.