ערכי סף ומטריצת הבלבול

נניח שיש לכם מודל רגרסיה לוגיסטי לזיהוי ספאם באימייל חוזה ערך בין 0 ל-1, שמייצג את ההסתברות האימייל הוא ספאם. חיזוי של 0.50 מציין סבירות של 50% שהודעת האימייל ספאם, חיזוי של 0.75 מציין סבירות של 75% שהאימייל הוא ספאם, וכן הלאה.

אתם רוצים לפרוס את המודל הזה באפליקציית אימייל כדי לסנן ספאם ל- בתיקיית אימייל נפרדת. אבל לשם כך צריך להמיר את פלט מספרי (למשל, 0.75) לאחת משתי קטגוריות: 'ספאם' או "לא ספאם".

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

כאן אפשר למצוא פרטים נוספים על סף הסיווג

ייתכן שאתם תוהים: מה קורה אם הציון החזוי שווה ל- סף הסיווג (למשל, ציון 0.5, גם סף הסיווג הוא 0.5)? טיפול במקרה הזה תלוי באופן ההטמעה הספציפי שנבחר לסיווג מודל טרנספורמר. לדוגמה, הערכים Keras יוצרת חיזוי של המחלקה השלילית אם הציון והסף זהים, אבל כלים או frameworks אחרים עשויים לטפל במקרה הזה אחרת.

לדוגמה, נניח שהמודל נותן ציונים לאימייל אחד כ-0.99, ומבצע חיזוי לאימייל הזה יש סיכוי של 99% להיות ספאם, 0.51, המשמעות היא שיש סיכוי של 51% לספאם. אם מגדירים לסיווג של 0.5, המודל יסווג את שתי הודעות האימייל בתור ספאם. אם תגדירו את הסף כ-0.95, רק האימייל עם ציון 0.99 יקבל יסווג כספאם.

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

מטריצת בלבול

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

ערך חיובי בפועל שלילי בפועל
צפי חיובי חיובי אמיתי (TP): ספאם אימייל שסווג כראוי כאימייל ספאם. אלה הודעות הספאם נשלחת באופן אוטומטי לתיקיית הספאם. חיובי שגוי (FP): אימייל שאינו ספאם מסווג באופן שגוי בתור ספאם. אלה הודעות האימייל הלגיטימיות לתיקיית הספאם.
ערך שלילי חזוי לא נכון שלילי (FN): הודעת ספאם שסווגה באופן שגוי כ'לא ספאם'. אלה ספאם אימיילים שלא שנתפס על ידי מסנן הספאם ומגיעים לתיבת הדואר הנכנס. True negative (TN): A אימייל שלא ספאם מסווג כראוי כלא ספאם. אלו הודעות האימייל הלגיטימיות שנשלחות ישירות לתיבת הדואר הנכנס.

שימו לב שהסכום הכולל בכל שורה מציין את כל התוצאות החיוביות החזויות (TP + FP) וגם כל הערכים השליליים החזויים (FN + TN), ללא קשר לתוקף. הסכום הכולל בכל העמודה הזו נותנת בינתיים את כל התוצאות החיוביות האמיתיות (TP + FN) וכל הערכים השליליים האמיתיים (FP + TN) ללא קשר לסיווג המודל.

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

השפעת הסף על תוצאות חיוביות ושליליות נכון או לא נכון

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

אפשר לנסות לשנות את הסף בעצמך.

הווידג'ט כולל שלושה מערכי נתונים של צעצועים:

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

בדיקת ההבנה

1. דמיינו מודל סיווג של פישינג או תוכנות זדוניות שבו אתרי פישינג ותוכנות זדוניות נכללים במחלקה 1 (true) ו- אתרים לא מזיקים נמצאים במחלקה עם התווית 0 (false). המודל הזה מסווג בטעות אתר לגיטימי כתוכנה זדונית. איך זה נקרא?
תוצאה חיובית כוזבת
דוגמה שלילית (אתר חוקי) צוינה באופן שגוי מסווג כדוגמה חיובית (אתר עם תוכנה זדונית).
חיובית אמיתית
אתר חיובי אמיתי פירושו אתר של תוכנה זדונית שיסווגו בתור תוכנות זדוניות.
תוצאה שלילית שגויה
תוצאה שלילית כוזבת תזוהה בטעות עם אתר של תוכנה זדונית מסווג כאתר לגיטימי.
שלילית אמיתית
אתר שלילי אמיתי ייחשב אתר לגיטימי באופן תקין מסווג כאתר לגיטימי.
2. באופן כללי, מה קורה למספר התוצאות החיוביות המוטעות כאשר סף הסיווג עולה? מה לגבי תוצאות חיוביות אמיתיות? חלק מניסוי באמצעות פס ההזזה שלמעלה.
יש ירידה גם במספר התוצאות החיוביות הנכונות וגם המשמעותיות של המצבים השגויים.
ככל שהסף עולה, המודל יחזה ככל הנראה פחות תוצאות חיוביות בסך הכול, גם true וגם false. מסווג ספאם עם לסף של 0 .9999 יתייג הודעת אימייל כספאם רק אם הוא מתייחס עם סבירות של 99.99% לפחות. כלומר, לא סביר שיתייגו בטעות אימייל לגיטימי, אבל גם סביר שפספסתם אימייל ספאם.
עלייה במספר התוצאות החיוביות הנכונות והשגויות.
באמצעות פס ההזזה שלמעלה, נסו להגדיר את הסף ל-0.1, וגוררים אותו ל-0.9. מה קורה למספר של תוצאות חיוביות כוזבות ועל החיוביות האמיתיות?
התוצאות החיוביות האמיתיות גדלות. ירידה בתוצאות חיוביות מוטעות.
באמצעות פס ההזזה שלמעלה, נסו להגדיר את הסף ל-0.1, וגוררים אותו ל-0.9. מה קורה למספר של תוצאות חיוביות כוזבות וחיוביות אמיתיות?
3. באופן כללי, מה קורה למספר התוצאות השליליות המוטעות כאשר סף הסיווג עולה? מה לגבי מילות מפתח שליליות אמיתיות? חלק מניסוי באמצעות פס ההזזה שלמעלה.
מספר הערכים השליליים מסוג True ו-False גדל.
ככל שהסף עולה, המודל יחזה ככל הנראה מספר שלילי של מילות מפתח שליליות, גם TRUE וגם FALSE. בסף גבוה מאוד, כמעט כל הודעות האימייל, הן ספאם והן הודעות שאינן ספאם, יסווגו כלא ספאם.
יש ירידה גם במאפיין 'שליליות' וגם ב'שליליות'.
באמצעות פס ההזזה שלמעלה, נסו להגדיר את הסף ל-0.1, וגוררים אותו ל-0.9. מה קורה למספר של תוצאות שליליות כוזבות ושליליות אמיתיות?
מספר הערכים השליליים האמיתיים עולה. ירידה במספר המילים השליליות השגויות.
באמצעות פס ההזזה שלמעלה, נסו להגדיר את הסף ל-0.1, וגוררים אותו ל-0.9. מה קורה למספר של תוצאות שליליות כוזבות ושליליות אמיתיות?