כריית מידע – קלסיפיקציה 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”