סיווג: ROC ו-AUC

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

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

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

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

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

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

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

למודל המושלם שלמעלה, שמכיל ריבוע עם צלעות באורך 1, יש שטח מתחת לעקומה (AUC) של 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 פועלים היטב להשוואת מודלים כאשר מערך הנתונים הוא בערך את האיזון בין השיעורים. כשמערך הנתונים לא מאוזן, יש חזרה מדויקת והשטח שמתחת לעקומות האלה עשוי לספק השוואה טובה יותר תצוגה חזותית של ביצועי המודל. עקומות זכירת דיוק נוצרות על ידי התאמה מדויקת על ציר ה-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) מייצגות טווח של עם ערכי הסף עם הביצועים הטובים ביותר למודל הנתון. כפי שהסברנו ב סכומי סף, מטריצה של בלבול וגם בחירת מדדים ואפשרויות פשרות הסף שתבחרו תלוי במדד שהכי חשוב לכם הספציפי לתרחיש לדוגמה. נבחן את הנקודות א', ב' וג' בדוגמה הבאה שכל אחד מהם מייצג סף:

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

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

הנה עקומת ה-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). נקודה א' נמצאת בערך
       (0.25, 0.75). נקודה ב' נמצאת בערך (0.30, 0.90), והיא
       את הנקודה שממקסמת את TPR תוך מזעור ה-FPR. נקודה
       C הוא בערך (0.4, 0.95).
נקודה א'
במקרה כזה, עדיף לצמצם תוצאות חיוביות מוטעות, גם אם התוצאות החיוביות האמיתיות יורדות.
נקודה ב'
הסף הזה מאזן בין התוצאות החיוביות הנכונות לבין התוצאות החיוביות הלא נכונות.
נקודה ג'
הסף הזה ממקסם את התוצאות החיוביות האמיתיות (מסמן יותר ספאם) במחיר של יותר תוצאות חיוביות מוטעות (יותר הודעות אימייל לגיטימיות שסומנו כ- ספאם).