Menu
Coddy logo textTech

עץ החלטה

שיעור 17 מתוך 19 בקורס מבוא ללמידת מכונה של Coddy.

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

מקור: wikipedia

דמיינו עץ החלטה כגרף דמוי עץ, שבו:

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

סוגי עצי החלטה:

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


 

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

challenge icon

אתגר

בינוני

צרו פונקציה בשם 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 אונליין