הרצאה 7

Machine Learning
1
‫סוגים של למידה ‪ -‬דוגמאות ואינטואיציה‬
‫‪( Supervised Learning ‬למידה מפוקחת)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫סוכן "רואה" תפוחים ירוקים ואדומים‬
‫לכל תפוח אומרים לסוכן האם הוא אדום או ירוק‬
‫הסוכן לומד מהו תפוח ירוק ומהו אדום‬
‫נראה לסוכן תפוח חדש‬
‫‪‬‬
‫אדום‬
‫הסוכן ידע אם זה תפוח ירוק או אדום‬
‫‪( Unsupervised Learning ‬למידה בלתי מפוקחת)‬
‫‪ ‬סוכן "רואה" הרבה תפוחים ירוקים ואדומים‬
‫‪ ‬לא אומרים לסוכן מה צבע התפוחים‬
‫‪ ‬הסוכן לומד שיש שתי קבוצות של פירות‬
‫‪ ‬איך כל זה קורה? נלמד‪...‬‬
‫‪2‬‬
‫ירוק‬
3
‫‪( Supervised Learning‬למידה מפוקחת)‬
‫מה נתון?‬
‫‪ ‬נתון אוסף נתונים הקרויים דוגמאות (‪) examples‬‬
‫‪ ‬כל דוגמא מיוצגת ע"י וקטור של תכונות (‪)features,attributes‬‬
‫‪ ‬לכל דוגמה נתון תג (‪ )label‬מתוך קבוצת תגים אפשריים‬
‫‪ ‬דוגמא‪:‬‬
‫‪ ‬נניח שיש לנו נתונים עבור לווים מבנקים‬
‫‪ ‬כל לווה הוא דוגמא ( מיוצגת ע"י וקטור) בעלת המבנה‬
‫‪‬‬
‫(שכר‪ ,‬מצב משפחתי‪ ,‬שנות לימוד‪)...‬‬
‫‪ ‬ועם תיוג "בזמן" או "באיחור"‬
‫‪4‬‬
‫( (‪ ,7000‬נשוי‪ , )...12 ,‬בזמן)‬
‫( (‪ ,4000‬רווק‪ , )...14 ,‬באיחור)‬
‫( (‪ ,16000‬נשוי‪ , )...16 ,‬בזמן)‬
‫‪...‬‬
‫‪( Supervised Learning‬למידה מפוקחת)‬
‫מה המטרה?‬
‫‪ ‬מטרה‪ :‬בהינתן דוגמא חדשה‪ ,‬ולא מתויגת‪ ,‬רוצים לתייג אותה‪,‬‬
‫בעזרת שימוש בדוגמאות שיש לנו‪.‬‬
‫‪ ‬איך?‬
‫‪ .1‬עלינו להפיק פונקציה (מודל) שמתאימה לאוסף הנתונים‬
‫(דוגמאות ‪ +‬תיוג)‬
‫‪ .2‬נשתמש בפונקציה (מודל) לתיוג הדוגמא החדשה‪.‬‬
‫‪ ‬דוגמה‪:‬‬
‫‪ ‬נתונים אטריבוטים של לקוח המעוניין בהלוואה‪.‬‬
‫‪ ‬על סמך נתונים על ‪ 1,000‬לווים קודמים השמורים במערכת‪ ,‬יש‬
‫להחליט האם לאשר את ההלוואה‬
‫‪5‬‬
‫הגדרה פורמלית של ‪Supervised Learning‬‬
‫‪ ‬נתונים מספר דוגמאות‬
‫‪ ‬הסט של דוגמאות נקרא ‪( training set‬סט אימון)‬
‫‪ ‬נסמן אטריבוטים של דוגמה מספר ‪ i‬על ידי ווקטור ‪xi‬‬
‫‪ ‬נניח ‪ m‬אטריבוטים‪ .‬אזי )‪xi=(xi1, xi2, …, xim‬‬
‫‪ ‬נסמן תג של דוגמה מספר ‪ i‬על ידי ‪yi‬‬
‫‪ ‬סט אימון עם ‪ n‬דוגמאות‪:‬‬
‫})‪{(x1, y1), (x2, y2), …, (xn, yn‬‬
‫‪ ‬קיים קשר בין אטריבוטים לתגים‪yi=f(xi) :‬‬
‫‪ ‬אך הפונקציה ‪ f‬לא ידועה לנו‬
‫‪6‬‬
‫‪ Hypothesis‬ו ‪Hypothesis Space‬‬
‫‪ ‬המטרה של ‪ Supervised Learning‬היא לגלות קשר בין‬
‫אטריבוטים לתגים‪yi=f(xi) :‬‬
‫‪ ‬כך שגם עבור דוגמה חדשה ‪ x‬יתאים החישוב )‪ ,y=f(x‬כלומר )‪f(x‬‬
‫יהיה צפי טוב על התג האמתי של הדוגמה‬
‫‪( hypothesis ‬היפותזה) היא השערה של ‪ f‬האמתי‬
‫‪ ‬נסמן היפותזה ‪h‬‬
‫‪( hypothesis space ‬מרחב היפותזות) – מרחב של פונקציות‬
‫אפשריות עבור ‪h‬‬
‫‪ ‬כגון פונקציות לינאריות‬
‫‪ ‬היפותזה נקראת ‪( consistent‬עקבית) אם היא מסכימה עם ‪f‬‬
‫על כל הדוגמאות של סט אימון‪ ,‬כלומר אם )‪h(xi)=f(xi‬‬
‫‪7‬‬
‫סוגים של ‪Supervised Learning‬‬
‫‪ ‬מבדילים בין שני סוגי ‪Supervised Learning‬‬
‫‪ ‬לפי תחום של תגים ‪yi‬‬
‫‪ ‬אם ‪ yi‬נלקחים מקבוצה סופית של קטגוריות (כגון "הלוואה‬
‫הוחזרה" או "הלוואה לא הוחזרה")‪ ,‬אזי בעיית למידה היא‬
‫בעיית ‪( Classification‬סיווג)‬
‫‪ ‬אם ‪ yi‬הם מספרים (כגון טמפרטורת אויר)‪ ,‬אזי בעיית למידה‬
‫היא בעיית ‪( Regression‬רגרסיה)‬
‫‪ ‬דוגמה של בעיית רגרסיה‪ :‬נתונה טמפרטורת אוויר (תג) עבור ‪100‬‬
‫הימים האחרונים‪ .‬עבור ימים אלה נתונים גם לחץ אוויר‪ ,‬לחות‬
‫וטמפרטורת אוויר של היום הקודם (אטריבוטים)‪ .‬אנו רוצים לקבל‬
‫צפי על טמפרטורה שתהיה מחר‬
‫‪8‬‬
‫עיקרון ‪Okham’s Razor‬‬
‫‪( Okham’s Razor ‬סכין של ‪)Okham‬‬
‫‪ ‬יש צורך באיזון נכון בין עקביות של היפותזה לפשטותה‬
‫‪ ‬אפשר לבנות היפותזה ‪ h‬מסובכת שתהיה עקבית עם סט אימון‪ ,‬אך‬
‫לא תצליח לבצע צפי טוב על דוגמאות עתידיות‬
‫‪ ‬בעיה זאת מכנים ‪( overfitting‬תיאום יתר)‬
‫‪ ‬נבין בעיית ‪ overfitting‬בעזרת דוגמה של רגרסיה‪:‬‬
‫‪9‬‬
10
‫רגרסיה לינארית ‪Linear Regression -‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫נניח שנתונים מחירי רכבים משומשים בשנים האחרונות‬
‫‪ - x‬אטריבוטים של הרכב‬
‫‪ - y‬מחיר‬
‫‪h = w1x+w0‬‬
‫)‪h = h (x‬‬
‫‪ ‬למשל ‪h=w1x+ w0‬‬
‫‪ ‬איך נמצא את הוקטור ‪? w‬‬
‫‪ ‬נגדיר ‪( loss function‬פונקציית הפסד)‬
‫‪ ‬אנחנו רוצים שהיא תהיה קטנה ככל הניתן‬
‫‪ ‬למשל‪ :‬סכום מרחקי הנקודות מ ‪h‬‬
‫‪11‬‬
‫העמקה נוספת‬
‫‪ ‬נראה איך מבצעים רגרסיה בעזרת פונקציות לינאריות‬
‫‪ ‬כלומר‪ ,‬מרחב היפותזות הוא פונקציות בצורת‪:‬‬
‫‪hw(x)=w0+w1x1+w2x2+…wmxm‬‬
‫‪ ‬לצורך פשטות נתחיל מדוגמאות בתי אטריביוט אחד‬
‫‪ ‬ההיפותזות יהיו בצורת ‪hw(x)=w0+w1x‬‬
‫‪ ‬אנחנו צריכים למצוא ‪ w0‬ו ‪ w1‬המתאימים ביותר לדוגמאות‬
‫בסט האימון‬
‫‪ ‬איך נגדיר "מתאימים ביותר"?‬
‫‪ ‬נגדיר ‪( loss function‬פונקציית הפסד)‬
‫‪‬‬
‫‪‬‬
‫‪12‬‬
‫היא תהיה המודד של התאמת ‪ h‬לסט אימון‬
‫אנחנו רוצים שהיא תהיה קטנה ככל הניתן‬
‫‪ ‬פונקציית הפסד פופולארית‪:‬‬
‫פתרון אופטימלי עבור רגרסיה לינארית עבור‬
‫מקרה של אטריביוט אחד‬
‫‪ ‬אנחנו יכולים למצוא בדרך אנליטי ‪ w0‬ו ‪ w1‬כך שההפסד (כמו‬
‫שהגדרנו) יהיה מינימלי‬
‫‪ Loss(hw) ‬יכול להיות מינימלי רק בנקודות קיצוניות‪ ,‬כלומר‬
‫במקומות שנגזרות חלקיות עבור ‪ w0‬ו ‪ w1‬הם אפס‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪ ‬אלו הפתרונות‪:‬‬
‫‪13‬‬
‫מה עושים כשהמצב הוא יותר מסובך?‬
‫‪ ‬פתרון אופטימלי שקיבלנו בשקופית הקודמת הינו נכון עבור‬
‫היפותזות לינאריות ופונקציית הפסד מסוימת‬
‫‪ ‬עבור מרחב היפותזות אחר או פונקציית הפסד אחרת‪ ,‬לא‬
‫תמיד נוכל לקבל פתרון באופן אנליטי‬
‫‪ ‬אז משתמשים בסוג חיפוש לוקלי בשם ‪:gradient descent‬‬
‫הסברנו בכיתה כיצד זה‬
‫עובד‬
‫‪ ‬עבור רגרסיה לינארית עם פונקציית הפסד כמו מקודם‪ ,‬נקבל‪:‬‬
‫‪14‬‬
‫רגרסיה לינארית עם מספר רב של אטריבוטים‬
‫‪ ‬מרחב היפותזות‪:‬‬
‫‪hw(x)=w0+w1x1+w2x2+…wmxm‬‬
‫‪ ‬פונקציית הפסד‪:‬‬
‫‪ ‬העדכונים עבור ‪:gradient descent‬‬
‫‪ ‬עדכון זה מתאים אפילו ל ‪ ,w0‬רק נוסיף אטריביוט עם מספר ‪ 0‬בעל‬
‫ערך קבוע של ‪ ,1‬כלומר ‪ xj,0=1‬עבור כל הדוגמאות‬
‫‪ ‬שימו לב שעכשיו אפשר לבטא היפותזות שלנו באופן קצר‪:‬‬
‫‪hw(x)=w∙x‬‬
‫‪ ‬אפשר לקבל פתרון גם באופן אנליטי‬
‫‪15‬‬
16
‫סיווג לינארי‬
‫‪ ‬דוגמה‪:‬‬
‫‪ ‬עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו‬
‫‪ RPM‬ו ‪vibration‬‬
‫‪ ‬אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על‬
‫סמך אטריבוטים אלו‬
‫‪ ‬בסיווג לינארי‪ ,‬אנו רוצים‬
‫למצוא ‪separator‬‬
‫‪( function‬פונקציית‬
‫הפרדה) בצורת ‪w∙x=0‬‬
‫‪17‬‬
‫איך נבצע סיווג בעזרת פונקציית הפרדה?‬
‫‪ ‬נניח שחישבנו ‪ w‬ויש לנו פונקציית הפרדה ‪w∙x=0‬‬
‫‪ ‬נתייג דוגמה חדשה ‪ x‬באופן הבא‪:‬‬
‫‪18‬‬
‫הרחבה סיווג לינארי‬
‫‪ ‬דוגמה‪:‬‬
‫‪ ‬עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו‬
‫‪ RPM‬ו ‪vibration‬‬
‫‪ ‬אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על‬
‫סמך אטריבוטים אלו‬
‫‪ ‬בסיווג לינארי‪ ,‬אנו רוצים‬
‫למצוא ‪separator‬‬
‫‪( function‬פונקציית‬
‫הפרדה) בצורת ‪w∙x=0‬‬
‫‪ ‬תרגיל‪ :‬מה הייתה פונקציית‬
‫הפרדה בדוגמה?‬
‫‪19‬‬
‫‪ ‬רמז‪ :‬יש להוסיף אטריבוט מלאכותי‬
‫איך נבצע סיווג בעזרת פונקציית הפרדה?‬
‫‪ ‬נניח שחישבנו ‪ w‬ויש לנו פונקציית הפרדה ‪w∙x=0‬‬
‫‪ ‬נתייג דוגמה חדשה ‪ x‬באופן הבא‪:‬‬
‫‪ ‬הוסבר בכיתה (בעזרת דוגמה עם אטריביוט אחד) מדוע זה‬
‫נכון‬
‫‪20‬‬
‫פתרון של סיווג לינארי‬
‫‪ ‬האם אפשר לחשב ‪ w‬באופן אנליטי?‬
‫‪ ‬לא‪...‬‬
‫‪ ‬אנו רוצים להבטיח הפסד‬
‫מינימלי‬
‫‪ ‬זה יושג כשנגזרות חלקיות שוות ל ‪0‬‬
‫‪ ‬אבל הנגזרות של ‪ hw‬הם או ‪ 0‬או לא קיימות (כי היא יש בה קפיצות)!‬
‫‪21‬‬
‫חיפוש לוקלי עבור סיווג לינארי‬
‫‪ ‬אם קיימת היפותזה עקבית‪ ,‬אזי אפשר לחשב אותה בעזרת‬
‫‪ gradient descent‬עם עדכונים‪:‬‬
‫‪j‬‬
‫‪ ‬בדיוק כמו ברגרסיה!‬
‫‪ ‬מדוע עדכון זה עובד?‬
‫‪ ‬נתבונן בעדכון זה עבור דוגמה אחת‪:‬‬
‫‪ ‬קיימות שלוש אפשרויות‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪22‬‬
‫‪‬‬
‫)‪ – y=hw(x‬אזי אין עדכון‬
‫)‪( y>hw(x‬כלומר ‪ – )hw(x)=0 ,y=1‬אזי ‪ wi‬משתנה בהתאם לסימן של ‪ ,x‬כי‬
‫אנחנו צריכים להגדיל ‪ wx‬כדי שיהיה ‪hw(x)=1‬‬
‫)‪ .y<hw(x‬תרגיל!‬
‫מה יקרה אם לא תהיה היפותזה עקבית?‬
‫‪ ‬אם לא קיימת היפותזה עקבית‪ ,‬אזי העדכונים מתבדרים‬
‫(כלומר‪ ,‬לא מתכנסים לערכים מסוימים עבור ‪)wi‬‬
‫‪ ‬אבל אפשר לגרום לעדכונים להתכנס אם נבחר ‪ α‬בדרך נבונה‪:‬‬
‫‪ t ,α=O(1/t) ‬הוא זמן‪ ,‬כלומר מספר העדכון‬
‫‪ ‬למשל אפשר לקחת )‪α=1000/(1000+t‬‬
‫‪ ‬עוד פתרון הוא להשתמש בפונקציה לוגיסטית בתור היפותזה‪:‬‬
‫‪ ‬במקום‬
‫משתמשים ב‪:‬‬
‫‪ ‬עבור ‪ x‬מסוים‪ ,‬היפותזה זאת מספקת רמת ביטחון ש ‪:f(x)=1‬‬
‫‪23‬‬
‫‪ ‬אם ‪ ,wx=0‬אזי ‪hw(x)=0.5‬‬
‫‪ ‬אם ∞‪ ,wx=+‬אזי ‪hw(x)=1‬‬
‫‪ ‬אם ∞‪ ,wx=-‬אזי ‪hw(x)=0‬‬
‫עוד יתרון‪ :‬קיימות נגזרות!‬
‫עצי החלטה‬
‫‪ ‬עצי החלטה הם מרחב היפותזות‬
‫‪ ‬עץ החלטה הוא היפותזה‬
‫‪ ‬כדי להשתמש במרחב הזה‪ ,‬צריכים שני אלגוריתמים‬
‫‪ ‬אלגוריתם לבניית היפותזה ‪ -‬יצירת עץ החלטה‬
‫‪ ‬אלגוריתם לסיווג בעזרת ההיפותזה שבנינו‬
‫‪ ‬בניית עץ החלטה מתבצעת על סמך אוסף דוגמאות‬
‫‪ ‬בהינתן העץ‪ ,‬ניתן לסווג דוגמא חדשה ע"י טיול בעץ ומציאת העלה‬
‫המתאים‬
‫‪ ‬דוגמא‪ :‬עץ ההחלטה בודק אם‬
‫כדאי לשחק בחוץ‬
‫‪ ‬השאלה הקשה היא‪ :‬איך בונים את העץ?‬
‫‪24‬‬
‫נבנה עץ החלטה עבור לקוחות במסעדה‪...‬‬
‫‪ ‬נתונים דוגמאות של לקוחות במסעדה‬
‫‪ ‬עבור כל לקוח יש תג המתאר אם לקוח מחכה עד שמתפנה מקום‬
‫‪ ‬קיימים נתונים עבור ‪ 12‬לקוחות‪ .‬נמדדו ‪ 10‬אטריבוטים‬
‫‪25‬‬
‫לשימושכם‪ :‬מקרא לאטריבוטים‪...‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪26‬‬
‫‪ – Alternate‬האם יש מסעדה אחרת באזור‬
‫‪ – Bar‬האם יש אזור נוח לחכות בו‬
‫‪ - Fri/Sat‬האם יום שישי‪/‬מוצ"ש‬
‫‪ - Hungry‬האם אני רעב‬
‫‪ – Patrons‬כמות האנשים במסעדה )‪(None, Some, Full‬‬
‫‪ – Price‬טווח מחירים )‪($, $$, $$$‬‬
‫‪ – Raining‬האם יורד גשם‬
‫‪ - Reservation‬האם שמרנו מקום‬
‫‪ - Type‬סוג‬
‫‪ - WaitEstimate‬זמן המתנה משוער )‪(0-10, 10-30, 30-60, >60‬‬
‫עץ החלטה עבור סט אימון בדוגמה‬
‫‪ ‬עבור סט אימון בדוגמה‪ ,‬אפשר לבנות את עץ ההחלטה הבא‪:‬‬
‫‪27‬‬
‫איך בונים עץ החלטה?‬
‫‪ ‬בהתאם ל ‪ ,Okham’s Razor‬אנחנו רוצים לבנות עץ קטן ככל‬
‫שניתן שיהיה עקבי עם הדוגמאות בסט אימון‬
‫‪ ‬אין דרך ישירה לחשב מהו העץ הקטן ביותר‬
‫‪ ‬משתמשים בחוק אצבע‪ :‬כל פעם מוסיפים קדקוד עבור אטריבוט‬
‫שיקרב אותנו להחלטה מהר ככל הניתן‬
‫‪( ‬כלומר‪ ,‬שכל הדוגמאות תחת כל ענף יהיו בעלי תג דומה)‬
‫‪28‬‬
‫בחירת האטריבוט הבא‬
‫‪ ‬כל פעם מוסיפים קדקוד עבור אטריבוט שמקרב אותנו‬
‫להחלטה ככל הניתן‪ .‬דוגמה (הוסברה בכיתה)‪:‬‬
‫‪29‬‬
‫‪K-Nearest Neighbors‬‬
‫‪ K-Nearest Neighbors ‬הוא אלגוריתם פשוט מאד‬
‫‪ ‬בהינתן דוגמה חדשה‪ ,‬מוצאים ‪ k‬דוגמאות שדומות לה ביותר בסט‬
‫אימון‬
‫‪ ‬דוגמה‬
‫‪)3-NN( K=3 ‬‬
‫‪)5-NN( K=5 ‬‬
‫‪ ‬מה זה "דומה ביותר"? משתמשים ב ‪Minkovski Distance‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪30‬‬
‫אם יש שני וקטורים‬
‫אז ‪ Minkovski Distance‬הוא‪:‬‬
‫הרבה משתמשים ב ‪( p=2‬מרחק אוקלידי)‬
‫לפעמים יש צורך לנרמל אטריבוטים (הוסבר בכיתה)‬
How To Perform Supervised Learning
31
‫איך נעריך את איכות הלמידה?‬
‫‪ ‬נחלק את הנתונים העומדים לרשותנו לשתי קבוצות‪:‬‬
‫‪ ‬סט אימון‬
‫‪ ‬סט בדיקה‬
‫‪ ‬לדוגמה‪ :‬אפשר לבחור בדרך אקראית ‪ 80%‬של דוגמאות שתהיינה בסט‬
‫אימון ושאר הדוגמאות תהיינה בסט בדיקה‬
‫‪ ‬הסוכן יבנה את המודל‬
‫‪ ‬בעזרת סט אימון‬
‫‪ ‬נעריך את איכות הלמידה‬
‫‪ ‬על בסיס סט בדיקה‬
‫‪ ‬טכניקה זאת נקראת ‪( holdout cross-validation‬אימות עם‬
‫מחבוא)‬
‫‪32‬‬
‫‪K-Fold Cross-Validation‬‬
‫‪ ‬ל ‪ holdout cross-validation‬ישנו חסרון‪ :‬הוא לא משתמש‬
‫בכל הדוגמאות העומדות לרשותנו (לבנית המודל)‬
‫‪ K-Fold Cross-Validation ‬הוא תהליך חכם שבו כל דוגמה‬
‫יכולה להיות גם בסט אימון וגם בסט בדיקה גם יחד‪:‬‬
‫‪ ‬מחלקים דוגמאות ל ‪ K‬קבוצות‬
‫‪‬‬
‫‪‬‬
‫לדוגמה‪ ,‬נניח שקיימות ‪ n=100‬דוגמאות ומשתמשים ב ‪K=5‬‬
‫אזי יש ‪ 5‬קבוצות של ‪ n/K=20‬דוגמאות בכל קבוצה‬
‫‪ ‬מבצעים ‪ K‬שלבי למידה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫בכל שלב קבוצה אחת היא סט בדיקה‪ .‬סט אימון מורכב משאר הקבוצות‬
‫בונים מודל מסט האימון‪ ,‬כלומר נבנים פה ‪ K‬מודלים‬
‫הסוכן שנבנה יחבר את המודלים באופן שנקבע‬
‫‪ ‬לפי רוב (סיווג)‪ ,‬ממוצע (רגרסיה)‬
‫‪ ‬מקובל להשתמש ב ‪10=K‬‬
‫‪33‬‬
‫חשיבות ההפרדה‬
‫בין סט אימון לסט בדיקה‬
‫‪ ‬חשוב מאד לוודא שהסוכן לא יתאמן על אותם נתונים שבעזרתם‬
‫תיקבע איכותו‬
‫‪ ‬מה יכול לקרות אם הסוכן יתאמן על כל הנתונים?‬
‫‪ ‬הוא יכול להשתמש ב ‪!overfitting‬‬
‫‪ ‬אז נחשוב שהסוכן הוא מצוין‪ ,‬אבל באמת הוא לא יצליח עבור דוגמאות‬
‫חדשות‬
‫‪34‬‬
‫מסווג בינארי – ‪Binary Classifier‬‬
‫‪ ‬פעמים רבות נרצה להבדיל בין שני תגים‪.‬‬
‫‪ ‬זה נקרא סיווג בינארי‬
‫‪ ‬בהרבה מקרים של סיווג עם יותר תגים מבצעים שילוב של‬
‫מסווגים בינריים‬
‫‪ ‬דוגמה‪ :‬סיווג ספרות בכתב יד (הוסבר בכיתה)‬
‫‪35‬‬
‫מדידת הביצועים של המודל הבינרי‬
‫‪ ‬נניח שיש שני תגים‪B,A ,‬‬
‫‪ ‬נבחר את ‪ A‬להיות חיובית (‪)Positive‬‬
‫‪ ‬הדוגמאות מסט הבדיקה מחלוקות כמו בטבלה‪:‬‬
‫תג חזוי (ע"י המודל)‬
‫)‪Negative (B‬‬
‫)‪Positive (A‬‬
‫‪True Positive False Negative‬‬
‫)‪(TP‬‬
‫)‪(FN‬‬
‫)‪Positive (A‬‬
‫‪False Positive True Negative‬‬
‫)‪(FP‬‬
‫)‪(TN‬‬
‫)‪Negative (B‬‬
‫‪36‬‬
‫תגית ידועה‬
‫הגדרות‪Precision \ Recall \ Accuracy :‬‬
‫משמעות‪...‬‬
‫הדוגמאות שסווגו כחיוביות‬
‫באופן נכון‬
‫‪Measure‬‬
‫‪Formula‬‬
‫‪Precision‬‬
‫)‪TP / (TP + FP‬‬
‫‪Recall‬‬
‫)‪TP / (TP + FN‬‬
‫הדוגמאות החיוביות שסווגו‬
‫כחיוביות באופן נכון‬
‫‪Accuracy‬‬
‫‪(TP + TN) / (TP + TN +‬‬
‫)‪FP + FN‬‬
‫הדוגמאות שסווגו באופן נכון‬
‫‪ ‬נקבל ערכים בין ‪0-1‬‬
‫‪ ‬לפעמים מקובל להמיר לאחוזים‪ ,‬ע"י הכפלה ב ‪100‬‬
‫‪37‬‬
‫דוגמא ‪Precision \ Recall \ Accuracy :1‬‬
‫תגית חזויה (ע"י המודל)‬
‫‪Measure‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫)‪Positive (A‬‬
‫‪0‬‬
‫‪80‬‬
‫)‪Positive (A‬‬
‫‪5‬‬
‫‪15‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫תגית ידועה‬
‫‪Formula‬‬
‫משמעות‪...‬‬
‫‪Precision‬‬
‫)‪TP / (TP + FP‬‬
‫אחוז הדוגמאות שסווגו‬
‫כחיוביות באופן נכון‬
‫‪Recall‬‬
‫)‪TP / (TP + FN‬‬
‫אחוז הדוגמאות החיוביות‬
‫שסווגו כחיוביות באופן נכון‬
‫‪Accuracy‬‬
‫‪(TP + TN) / (TP + TN +‬‬
‫)‪FP + FN‬‬
‫אחוז הדוגמאות שסווגו באופן‬
‫נכון‬
‫‪ ‬נניח שרוצים מודל שבודק אם מישהו חולה‬
‫‪ ‬ונניח שיש בסט בדיקה ‪ 80‬חולים ו‪ 20‬בריאים‬
‫‪ ‬נניח שסיווגנו ‪ 80‬מהחולים כחולים‪ ,‬וגם ‪ 15‬מהבריאים כחולים‬
‫‪TP = 80, FP = 15, TN = 5, FN = 0‬‬
‫‪Precision = 80/95 = 0.84‬‬
‫‪Recall = 80/80 = 1‬‬
‫‪Accuracy = 85/100 = 0.85‬‬
‫‪38‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫דוגמא ‪Precision \ Recall \ Accuracy :2‬‬
‫תגית חזויה (ע"י המודל)‬
‫‪Measure‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫)‪Positive (A‬‬
‫‪60‬‬
‫‪20‬‬
‫)‪Positive (A‬‬
‫‪15‬‬
‫‪5‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫תגית ידועה‬
‫‪Formula‬‬
‫משמעות‪...‬‬
‫‪Precision‬‬
‫)‪TP / (TP + FP‬‬
‫אחוז הדוגמאות שסווגו‬
‫כחיוביות באופן נכון‬
‫‪Recall‬‬
‫)‪TP / (TP + FN‬‬
‫אחוז הדוגמאות החיוביות‬
‫שסווגו כחיוביות באופן נכון‬
‫‪Accuracy‬‬
‫‪(TP + TN) / (TP + TN +‬‬
‫)‪FP + FN‬‬
‫אחוז הדוגמאות שסווגו באופן‬
‫נכון‬
‫‪ ‬עכשיו נניח שסיווגנו ‪ 20‬מהחולים כחולים‪ ,‬וגם ‪ 5‬מהבריאים כחולים‬
‫‪TP = 20, FP = 5, TN = 15, FN = 60‬‬
‫‪Precision = 20/25 = 0.8‬‬
‫‪Recall = 20/80 = 0.25‬‬
‫‪Accuracy = 35/100 = 0.35‬‬
‫‪39‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫דוגמא ‪Precision \ Recall \ Accuracy :3‬‬
‫תגית חזויה (ע"י המודל)‬
‫‪Measure‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫)‪Positive (A‬‬
‫‪70‬‬
‫‪10‬‬
‫)‪Positive (A‬‬
‫‪0‬‬
‫‪20‬‬
‫‪Negative‬‬
‫)‪(B‬‬
‫תגית ידועה‬
‫‪Formula‬‬
‫משמעות‪...‬‬
‫‪Precision‬‬
‫)‪TP / (TP + FP‬‬
‫אחוז הדוגמאות שסווגו‬
‫כחיוביות באופן נכון‬
‫‪Recall‬‬
‫)‪TP / (TP + FN‬‬
‫אחוז הדוגמאות החיוביות‬
‫שסווגו כחיוביות באופן נכון‬
‫‪Accuracy‬‬
‫‪(TP + TN) / (TP + TN +‬‬
‫)‪FP + FN‬‬
‫אחוז הדוגמאות שסווגו באופן‬
‫נכון‬
‫‪ ‬עכשיו נניח שסיווגנו ‪ 10‬מהחולים כחולים‪ ,‬ו ‪ 20‬מהבריאים כחולים‬
‫‪TP = 10, FP = 20, TN = 0, FN = 70‬‬
‫‪Precision = 10/30 = 0.33‬‬
‫‪Recall = 10/80 = 0.12‬‬
‫‪Accuracy = 10/100 = 0.10‬‬
‫‪40‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫בחירת מדדים‬
‫‪ ‬למה ‪ Accuracy‬אינו מספיק?‬
‫‪ ‬נניח שיש לנו ‪ 95‬חולים‪ ,‬ו ‪ 5‬בריאים‪.‬‬
‫‪ ‬אם נסווג את כולם כחולים‪ ,‬נקבל ‪Accuracy‬של ‪95%‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪41‬‬
‫האם זה טוב?‬
‫תלוי‪...‬‬
‫אם אפשר לתת לכולם תרופה‪ ,‬והתרופה אינה פוגעת בבריאים‪ ,‬זה‬
‫מצוין‪.‬‬
‫אם לעומת זאת התרופה מאד מסוכנת ואסור לתת אותה לבריאים‪,‬‬
‫אבל זה בסדר אם חלק מהחולים לא מטופלים‪ ,‬אז ‪ accuracy‬לא‬
‫מדד טוב‪.‬‬
‫דוגמא נוספת‬
)‫תגית חזויה (ע"י המודל‬
Positive (A)
Negative (B)
Positive (A)
500
100
Negative (B)
500
10,000
‫תגית ידועה‬
Precision = 50% (500/1000)
Recall = 83% (500/600)
Accuracy = 95% (10500/11100)
42
‫נושאים נוספים‬
‫‪ ‬יש עוד הרבה נקודות עדינות כאן‬
‫‪ ‬כמויות הדוגמאות מכל סוג‬
‫‪ ‬מדדים נוספים‬
‫‪... ‬‬
‫‪ ‬זה ילמד לעומק בקורס של כריית מידע (שנה ד)‬
‫‪43‬‬
‫סיכום על למידה מפוקחת‬
‫‪ ‬רגרסיה‪:‬‬
‫‪ ‬למדנו רגרסיה ליניארית‬
‫‪ ‬סיווג‪:‬‬
‫‪ ‬פונקציה ליניארית‬
‫‪ ‬עץ החלטה‬
‫‪K-Nearest Neighbors ‬‬
‫‪ ‬נשארו בחוץ כמה נושאים חשובים‪:‬‬
‫‪ ‬איזו פונקציה ליניארית לבחור בשביל‬
‫סיווג כשיש כמה פונקציות עקביות עם‬
‫סט אימון?‬
‫‪ ‬איך לתייג סטים בתמונה למטה?‬
‫‪‬‬
‫‪44‬‬
‫‪Support Vector Machines‬‬