2. עצי החלטות (decision trees)
Download
Report
Transcript 2. עצי החלטות (decision trees)
כריית מידע – קלסיפיקציה
Classification
ד"ר אבי רוזנפלד
הגדרת השיטה (מוויקיפדיה)
• בעיות סיווג -בהתאם לדוגמאות שנאספו בעבר ,האלגוריתם
לסיווג מסיק מודל סיווג המשמש לסווג מקרים חדשים.
.1למשל בנק יכול לבנות מודל סיווג של לווי משכנתא
בהתאם לדוגמאות שנאספו בעבר .כאשר מגיע לקוח חדש
המבקש משכנתא הוא מסווג לפי מידת הודאות שהוא אכן
יצליח לעמוד בעתיד בהחזרי ההלוואה.
.2בנאדם מקבל דואר .מידי פעם יש גם ספאם .האם דואר
חדש הוא ספאם או לא ספאם( .כמה קטגוריות יש פה?)
.3האם יהיה לבנאדם סרטן?
• באופן טכנית זה נחשבsupervised segmentation :
• ז"א שיש אוסף של דוגמאות ללמוד מהם ( supervised
)learningואז אתה רוצה לקטלג פריט חדש ()instance
אלגוריתמים סיווג
)Decision tree( עץ החלטה
Naïve Bayes
Neural Nets
Nearest Neighbor
•
•
•
•
דוגמא
מוסגים טכניים
•
•
•
•
רשומה = row = attributes = instance
( attributeביחיד) = שדה = עמודה = = column
independent variable
= Target Attributeמה ללמוד = dependent variable
אני לא אוהב את המוסג independent variableכי בפועל
בדרך כלל יש תלות בין ה independentוהdependent
(ה)target
– אחרת ,איך נלמד את התלות!!!
• בניית המודל = = inductionבניית החוקים
– תחום כריית מידע
• = Deductionשימוש בחוקים קיימים
– תחום של שאילתות
Training / Testing
שאלות כלליות
• מאיזה מידע אני לומד
– כלל המאפיינים או לא? יש יתרונות להוריד מאפיינים
– משום עלות המאפיינים ,משום טיב המודל –
overfitting
• איך אני בודק את המודל שלי
– Cross validation, hold out sets
• לא נדבר על זה היום!
דוגמאות של חוקים מעץ החלטות
•
•
•
•
אם משהו מעשן יותר מ Xסיגריות ליום והוא זכר מעל
,60הוא בתוך קבוצת אנשים שיש להם סיכוי גדול
לסרטן ריאות.
המאפיינים בתוך החוק :מספר סיגריות ,מין ,גיל
מה נלמד (ה – )targetסרטן
חוק :overfitted
– אם משהו מעשן 3או 4סיגריות ליום והוא זכר בגיל ,62
הוא גר בעיר Xושם האבא של ה ,Yהוא בתוך קבוצת
אנשים שיש להם סיכוי גדול לסרטן ריאות.
• מן הסתם חוק ה overfittedהוא יותר מדויק
?איך מייצרים איך החלטות
1. Check for base cases and return these rules
2. For each attribute a
a. Find the normalized information gain ratio from
splitting on a
3. Let a_best be the attribute with the highest
normalized information gain
4. Create a decision node that splits on a_best
5. Recurse on the sublists obtained by splitting
on a_best, and add those nodes as children
of node
Information GAIN הגדרת
G ain ( S , A ) E ntropy ( S )
v V alues ( A )
Sv
S
E ntropy ( S v )
:• הגדרות
?ENTROPY • אבל מה ההגדרה של
ENTROPY הגדרות
רצוי ENTROPYנמוך
דוגמא של ENTROPY
•
•
•
•
יש סה"כ 10אנשים בקבוצת .)set( S
7מתוכם הם מסוג +ו 3הם מסוג .-
p(+) = 0.7, p(-) = 0.3
ה ENTROPYשל = S
עוד דוגמא
ה ENTROPYלפני ואחרי חלוקה
• מצב ההתחלתי:
• מצב הילדים (אחרי חלוקה)
הINFORMATION GAIN
• ה ENTROPYשל המקור – ה ENTROPYשל הילדים
ביחד
• שימו לב שב ENTROPYשל הילדים יש משקל!
חלוקת לא בינארית
הIG
• שימו לב שלמרות שב 2מתוך הענפים לא היה
שיפור ב ,ENTROPYבגלל המשקל בענף השלישי
יש שיפור קל
שימוש של ENTROPYלבחירת מאפיינים
• איזה מאפיין יותר חשוב ,אחד אם IGגבוה או לא?
– מהו המשמעות של "מאפיין"?
• ניתן לחשב בקלות מצבי ,WHAT IFאם הייתי
מחלק את המידע לפי מאפיין מסוים
• מצב אופטימאלי :חלוקה ב 100%ו ENTROPYשל
0בכל הילדים .מצב ריאלי :זה לא קורה...
דוגמא :פטריות
מאת
UC Irvine Machine Learning Repository
http://archive.ics.uci.edu/ml/index.html
• האם הפטרייה ניתן לאכילה (רעילה או לא)
• מאפיינים כמו הצבע של חלקים של פטריה ,ריח,
וכו'
לפני בחינת המאפיינים
בדיקת מאפיין צבע
עוד מאפיין– ריח יותר טוב
חיבור של המאפיינים לבנות עץ
הפלט של WEKAשל הפטריות
?איך מייצרים איך החלטות
1. Check for base cases and return these rules
2. For each attribute a
a. Find the normalized information gain ratio from
splitting on a
3. Let a_best be the attribute with the highest
normalized information gain
4. Create a decision node that splits on a_best
5. Recurse on the sublists obtained by splitting
on a_best, and add those nodes as children
of node
התהליך בטקסט פשוט:
.1לכל מאפיין בתוך המידע
.Aבודקים אם יש סיווג לפי מאפיין
.Bאם יש ,אז RETURNאת המאפיין בתור קדקוד
.Cאם לא ,בוחרים את המאפיין Xלפי ה IGהכי גבוה
(aמייצרים קדקוד אם המאפיין Xוחוזרים לשלב .1
מתי יודעים עם יש סיווג תקין (שלב )A
• אם כל הרשומות שייכות לקטגוריה אחד (רצוי)
• אם כל הרשומות זהים בערכים שלהם (או לפחות
דומים)
– אז אין מה לעשות יותר למרות שזה לא רצוי
• אם אנחנו רוצים בכל מקרה לעזור את התהליך
– אולי בגלל שהעץ כבר מספיק גדול
– OVERFITTINGמושג שנדבר עליו בהמשך
...איך עובד התהליך
T id
R e fu n d
Splitting Attributes -- Nodes
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
1
Yes
S in g le
125K
No
2
No
M a rrie d
100K
No
3
No
S in g le
70K
No
4
Yes
M a rrie d
120K
No
5
No
D iv o rc e d
95K
Y es
6
No
M a rrie d
60K
No
7
Yes
D iv o rc e d
220K
No
8
No
S in g le
85K
Y es
9
No
M a rrie d
75K
No
10
No
S in g le
90K
Y es
Refund
Yes
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
NO
> 80K
YES
10
Training Data
Married
Model: Decision Tree
?מה קובע אם יהיה לי עץ כזה
MarSt
T id
R e fu n d
Married
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
NO
10
1
Yes
S in g le
125K
No
2
No
M a rrie d
100K
No
3
No
S in g le
70K
No
4
Yes
M a rrie d
120K
No
5
No
D iv o rc e d
95K
Y es
6
No
M a rrie d
60K
No
7
Yes
D iv o rc e d
220K
No
8
No
S in g le
85K
Y es
9
No
M a rrie d
75K
No
10
No
S in g le
90K
Y es
Single,
Divorced
Refund
No
Yes
NO
TaxInc
< 80K
NO
> 80K
YES
There could be more than one tree that fits
the same data!
איך קוראים את העץ
IF -> then ,אוסף של חוקי
Test Data
Start from the root of tree.
R e fu n d
No
Refund
Yes
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
Apply Model to Test Data
Test Data
R e fu n d
No
Refund
Yes
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
Apply Model to Test Data
Test Data
R e fu n d
No
Refund
Yes
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
Apply Model to Test Data
Test Data
R e fu n d
No
Refund
Yes
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
Apply Model to Test Data
Test Data
R e fu n d
No
Refund
Yes
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
Apply Model to Test Data
Test Data
R e fu n d
No
Refund
Yes
M a rita l
S ta tu s
T a x a b le
In c o m e
C heat
M a rrie d
80K
?
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
Assign Cheat to “No”