עץ החלטה
שיעור 17 מתוך 19 בקורס מבוא ללמידת מכונה של Coddy.
עץ החלטה הוא מודל לא־ליניארי המשמש הן למשימות סיווג והן למשימות רגרסיה. הוא מדמה קבלת החלטות אנושית באופן הדוק יותר מאלגוריתמים אחרים, ולכן הוא אינטואיטיבי ועוצמתי כאחד בהתמודדות עם מערכי נתונים מורכבים. בבסיסו, עץ החלטה מחלק את הנתונים לתת־קבוצות באמצעות סדרה של כללים פשוטים, בדומה לשאילת סדרה של שאלות כן/לא על התכונות של נקודות הנתונים.

מקור: wikipedia
דמיינו עץ החלטה כגרף דמוי עץ, שבו:
- כל צומת פנימי מייצג "בדיקה" של תכונה (למשל, האם בהטלת מטבע מתקבל עץ או פלי),
- כל ענף מייצג את תוצאת הבדיקה, וכן
- כל צומת עלה מייצג תווית מחלקה (ההחלטה שמתקבלת לאחר חישוב כל התכונות).
סוגי עצי החלטה:
- עצי סיווג: משמשים כאשר התוצאה החזויה היא המחלקה שאליה הנתונים שייכים.
- עצי רגרסיה: משמשים כאשר ניתן להתייחס לתוצאה החזויה כמספר ממשי (למשל, מחירו של בית).
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
בינוניצרו פונקציה בשם decide_outcome שמקבלת רשימת כללים בפורמט הבא:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}והיא מקבלת גם לאיזה כלל להמשיך אם התוצאה מתקיימת או לא:
outcome = {
"rule1": {True: "rule2", False: "rule3"},
"rule2": {True: "rule3", False: "rule4"},
"rule3": {True: None, False: None}
"rule4": {True: None, False: None}
}data_point = {
"rule1": 8,
"rule2": 10,
}הפלט אמור להיות rule4
8 is bigger than 5 (True)→ עוברים אלrule2מתוך"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ עוברים אלrule4מתוך"rule2": {True: "rule3", False: "rule4"},- אין דרכים נוספות להמשיך, ולכן הפלט הוא
rule4
תמיד מתחילים מ־<strong>rule1</strong>
נסו בעצמכם
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# כתבו את הקוד שלכם כאןכל השיעורים ביחידה מבוא ללמידת מכונה
תרגלו בעצמכם: קומפיילר Python אונליין