סיווג: ROC ו-AUC

בקטע הקודם הוצגה קבוצה של מדדי מודל, שכוללים חישוב לפי ערך סף יחיד של סיווג. עם זאת, אם רוצים להעריך את איכות המודל בכל הערכים האפשריים של הסף, צריך להשתמש בכלים אחרים.

עקומת מאפייני המקבל (ROC)

העקומה של ROC היא ייצוג חזותי של ביצועי המודל בכל הערוצים. הגרסה הארוכה של השם, 'מאפיין הפעולה של מקלט', היא שריד מגילוי מכשירי מכ"ם במלחמת העולם השנייה.

כדי לצייר את עקומת ROC, מחשבים את שיעור החיובים האמיתיים (TPR) ואת שיעור החיובים הכוזבים (FPR) בכל סף אפשרי (בפועל, במרווחים נבחרים), ולאחר מכן מייצגים את TPR בתרשים מעל FPR. מודל מושלם, שבסף מסוים יש לו ערך TPR של 1.0 וערך FPR של 0.0, יכול להיות מיוצג על ידי נקודה ב-(0, 1) אם מתעלמים מכל שאר הספים, או על ידי הנתונים הבאים:

Figure 1. תרשים של TPR (ציר y) לעומת FPR (ציר x) שמראה את הביצועים של מודל מושלם: קו מ-(0,1) ל-(1,1).
איור 1. ROC ו-AUC של מודל מושלם היפותטי.

שטח מתחת לעקומה (AUC)

השטח מתחת לעקומת ROC (AUC) מייצג את ההסתברות שהמודל, אם יתקבלו לו דוגמה חיובית ודוגמה שלילית שנבחרו באקראי, ידרג את הדוגמה החיובית גבוה יותר מהדוגמה השלילית.

שטח מתחת לעקומה (AUC) של המודל המושלם שלמעלה, שמכיל ריבוע עם צלעות באורך 1, הוא 1.0. המשמעות היא שיש סבירות של 100% שהמודל ידרג בצורה נכונה דוגמה חיובית שנבחרה באופן אקראי גבוה יותר מדוגמה שלילית שנבחרה באופן אקראי. במילים אחרות, בהתאם להפצה של נקודות הנתונים שבהמשך, AUC מאפשר לחשב את ההסתברות שהמודל יניח ריבוע שנבחר באופן אקראי מימין לעיגול שנבחר באופן אקראי, ללא קשר למיקום שבו מוגדר הסף.

שורת נתונים של ווידג'ט ללא פס הזזה

באופן קונקרטי יותר, למסווג ספאם עם AUC של 1.0 תמיד תהיה סבירות גבוהה יותר להגדיר אימייל ספאם אקראי כספאם מאשר אימייל לגיטימי אקראי. הסיווג בפועל של כל הודעת אימייל תלוי בערך הסף שתבחרו.

למסווג בינארי, מודל שמניב תוצאות זהות לאלה של ניחושים אקראיים או של הטלת מטבע הוא מודל עם עקומת ROC שמהווה קו אלכסוני מ-(0,0) ל-(1,1). ערך AUC הוא 0.5, והוא מייצג סיכוי של 50% לדירוג נכון של דוגמה חיובית ושלילית אקראיות.

בדוגמה של סיווג ספאם, לסיווג ספאם עם AUC של 0.5 יש רק חצי מהזמן סבירות גבוהה יותר להקצות להודעת אימייל אקראית שסווגה כספאם את הסיווג 'ספאם' מאשר להקצות את הסיווג הזה להודעת אימייל אקראית שסווגה כחוקית.

איור 2. תרשים של TPR (ציר y) לעומת FPR (ציר x) שמראה את הביצועים של ניחוש אקראי של 50-50: קו אלכסוני מ-(0,0) ל-(1,1).
איור 2. ROC ו-AUC של ניחושים אקראיים לחלוטין.

(אופציונלי, מתקדם) עקומת דיוק-זיהוי

אפשר להשתמש ב-AUC וב-ROC כדי להשוות בין מודלים כשמערך הנתונים מאוזן באופן יחסי בין הכיתות. כשמערך הנתונים לא מאוזן, עקומות של רמת דיוק-רמת זיהוי (PRC) והאזור שמתחת לעקומות האלה עשויים לספק תצוגה חזותית השוואתית טובה יותר של ביצועי המודל. כדי ליצור עקומות של רמת דיוק-רמת זיהוי, מתארכים את רמת הדיוק בציר ה-Y ואת רמת הזיהוי בציר ה-X בכל ערכי הסף.

דוגמה לתרשים של עקומת דיוק-זיהוי עם עקומה קמורה כלפי מטה מ-(0,1)
            ל-(1,0)

AUC ו-ROC לבחירת מודל וסף

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

איור 3.א. תרשים ROC/AUC של מודל עם AUC=0.65. איור 3.ב. תרשים ROC/AUC של מודל עם AUC=0.93.
איור 3. ROC ו-AUC של שני מודלים היפותטיים. העקומה בצד שמאל, עם AUC גבוה יותר, מייצגת את המודל הטוב מבין שני המודלים.

הנקודות על עקומת ROC הקרובות ביותר ל-(0,1) מייצגות טווח של ערכי הסף עם הביצועים הטובים ביותר במודל הנתון. כפי שמוסבר בקטעים סף, מטריצה של בלבול ובחירת מדד ומאזני עלויות-תועלות, הסף שבוחרים תלוי במדד שהכי חשוב לתרחיש לדוגמה הספציפי. נבחן את הנקודות A,‏ B ו-C בתרשים הבא, שכל אחת מהן מייצגת ערך סף:

איור 4. עקומת ROC עם AUC=0.84 שמוצגות בה שלוש נקודות בחלק הבולט של העקומה הקרוב ביותר ל-(0,1) ומסומנות באותיות A,‏ B ו-C בסדר.
איור 4. שלוש נקודות מתויגות שמייצגות ערכי סף.

אם תוצאות חיוביות שגויות (התראות שווא) הן בעלות גבוהה מאוד, מומלץ לבחור ערך סף שמניב ערך FPR נמוך יותר, כמו הערך בנקודה A, גם אם ערך ה-TPR יורד. לעומת זאת, אם תוצאות חיוביות מטעות זולות ותוצאות שליליות מטעות (החמצת תוצאות חיוביות אמיתיות) יקרות מאוד, עדיף להשתמש בערך הסף של הנקודה C, שממקסם את הערך של TPR. אם העלויות דומות, נקודת B עשויה לספק את האיזון הטוב ביותר בין שיעור ההמרות לבין שיעור הפסילות.

זוהי עקומת ROC של הנתונים שראינו קודם:

תרגול: בדיקת ההבנה

בפועל, עקומות ROC הן הרבה פחות סדירות מהאיורים שלמעלה. איזה מהמודלים הבאים, שמיוצגים על ידי עקומת ROC ו-AUC, מניב את הביצועים הטובים ביותר?
עקומת ROC שמתעקלת כלפי מעלה ואז ימינה מ-(0,0) ל-(1,1). ערך ה-AUC של העקומה הוא 0.77.
למודל הזה יש את ערך AUC הגבוה ביותר, שמתאים לביצועים הטובים ביותר.
עקומת ROC שדומה לקו ישר מ-(0,0) ל-(1,1), עם כמה זיגזגים. עקומת AUC היא 0.508.
עקומת ROC שמתעקללת למעלה ולימין מנקודה (0,0) לנקודה (1,1).
           ערך AUC של העקומה הוא 0.623.
עקומת ROC שמתעקלת ימינה ואז למעלה מ-(0,0) ל-(1,1). ערך AUC של העקומה הוא 0.31.
איזה מהמודלים הבאים מניב ביצועים נמוכים יותר מאשר תוצאות אקראיות?
עקומת ROC שמתעקלת ימינה ואז למעלה מ-(0,0) ל-(1,1). ערך AUC של העקומה הוא 0.32.
ערך ה-AUC של הדגם הזה נמוך מ-0.5, כלומר הביצועים שלו נמוכים יותר מאשר במקרה.
עקומת ROC שדומה לקו ישר מ-(0,0) ל-(1,1), עם כמה זיגזגים. עקומת AUC של הבדיקה היא 0.508.
הביצועים של המודל הזה טובים קצת יותר מאלה של המודל המבוסס על סיכוי.
עקומת ROC שהיא קו ישר אלכסוני מ-(0,0) ל-(1,1). ערך AUC של העקומה הוא 0.5.
הביצועים של המודל הזה זהים לביצועים של מקרית.
עקומת ROC המורכבת משני קווים אנכיים: קו אנכי מ-(0,0) ל-(0,1) וקו אופקי מ-(0,1) ל-(1,1).
      עקומה זו כוללת AUC של 1.0.
זהו סיווג מושלם היפותטי.

(אופציונלי, מתקדם) שאלה כבונוס

איזה מהשינויים הבאים אפשר לבצע במודל שמניב ביצועים גרועים יותר מהממוצע בשאלה הקודמת כדי לשפר את הביצועים שלו?
הופכים את החיזויים, כך שחיזויים של 1 הופכים ל-0, וחיזויים של 0 הופכים ל-1.
אם סיווג בינארי מסוים מסווג דוגמאות לקטגוריות הלא נכונות בתדירות גבוהה יותר מהסתברות, החלפת תווית הקטגוריה תשפר באופן מיידי את התחזיות שלו ללא צורך לאמן מחדש את המודל.
תמיד לחזות את הכיתה השלילית.
הפעולה הזו עשויה לשפר את הביצועים מעבר למה שאפשר להשיג על סמך צירוף מקרים, ועשויה גם לא לשפר אותם. כמו כן, כפי שמוסבר בקטע דיוק, זהו מודל לא שימושי.
תמיד לחזות את הכיתה החיובית.
הפעולה הזו עשויה לשפר את הביצועים מעבר למה שאפשר להשיג על סמך צירוף מקרים, ועשויה גם לא לשפר אותם. כמו כן, כפי שמוסבר בקטע דיוק, זהו מודל לא שימושי.

נניח מצב שבו עדיף לאפשר לספאם מסוים להגיע לתיבת הדואר הנכנס, מאשר לשלוח אימייל קריטי לעסק לתיקיית הספאם. הכשרתם סיווג ספאם למצב הזה, שבו הכיתה החיובית היא ספאם והכיתה השלילית היא לא ספאם. איזה מהנקודות הבאות בתרשים ROC של הסיווג עדיף?

עקומת ROC עם AUC=0.84 שמוצגות בה שלוש נקודות בחלק הבולט של העקומה, שנמצאות קרוב ל-(0,1). הנקודה A נמצאת בערך ב-(0.25, 0.75). הנקודה B נמצאת בערך (0.30, 0.90), והיא הנקודה שממקסמת את הערך של TPR וממזערת את הערך של FPR. הנקודה C נמצאת בערך ב-(0.4, 0.95).
נקודה א'
בתרחיש לדוגמה הזה, עדיף לצמצם את מספר התוצאות החיוביות השגויות, גם אם מספר התוצאות החיוביות הנכונות יפחת.
נקודה ב'
הסף הזה מאזן בין תוצאות חיוביות אמיתיות לבין תוצאות חיוביות כוזבות.
נקודה C
הסף הזה מגדיל את מספר האימיילים המזוהים כספאם (יותר ספאם מסומן) על חשבון מספר האימיילים החוקיים שמסומנים בטעות כספאם.