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”