דוד משיח

רשימה · למידת מכונה · מדידה

RMSE מול MAE: שתי תחזיות עם אותה שגיאה ממוצעת

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

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

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

שלוש הנוסחאות

לכל מקרה, השגיאה היא התחזית פחות הערך האמיתי, e = ŷ − y. על פני n מקרים:

MAE, שגיאה מוחלטת ממוצעת: הגודל הממוצע של הפספוס, MAE = Σ|e| / n.

MSE, שגיאה ריבועית ממוצעת: הממוצע של הפספוסים בריבוע, MSE = Σe² / n. העלאה בריבוע הופכת כל שגיאה לחיובית ונותנת לשגיאות גדולות משקל הרבה יותר גבוה. היחידות שלו בריבוע, כאן יחידות ביקוש בריבוע, ולכן קשה לקרוא אותו.

RMSE, שורש השגיאה הריבועית הממוצעת: השורש של MSE, RMSE = √MSE. זה מחזיר אותו ליחידות של הנתונים, ועדיין שומר על המשקל הנוסף לפספוסים גדולים.

חמישה ימים, שתי תחזיות

הביקוש האמיתי בחמישה ימים היה 12, 9, 15, 10, 14. תחזית A חזתה 13, 8, 16, 9, 15. תחזית B חזתה 12, 9, 15, 10, 9.

מדדתחזית Aתחזית B
שגיאות+1, −1, +1, −1, +10, 0, 0, 0, −5
MAE1.001.00
MSE1.005.00
RMSE1.002.24
R²0.810.04

לפי MAE שתי התחזיות זהות: שתיהן מפספסות ביחידה אחת ליום בממוצע. A מפספסת באחת כל יום. B מושלמת ארבעה ימים ואז מפספסת בחמש.

RMSE מפריד ביניהן. השגיאות בריבוע של A כולן 1, אז ה־MSE שלה הוא 1 וה־RMSE הוא 1. השגיאות בריבוע של B הן ארבעה אפסים ו־25, אז ה־MSE שלה הוא 25 / 5 = 5 וה־RMSE הוא √5 = 2.24. יום רע אחד יותר מהכפיל אותו.

שני גרפי עמודות של שגיאות התחזית היומיות בחמישה ימים. תחזית A מתחלפת בין פלוס 1 למינוס 1: MAE 1.00, RMSE 1.00, R² 0.81. תחזית B אפס ארבעה ימים ומינוס 5 ביום החמישי: MAE 1.00, RMSE 2.24, R² 0.04.
שתי התחזיות מפספסות ביחידה אחת ליום בממוצע. ההעלאה בריבוע היא מה שמאפשר ל־RMSE לראות את הפספוס הגדול האחד.

מה R² מוסיף

R² משווה את ה־MSE של המודל לשונות של הערכים האמיתיים, שהיא ה־MSE של תחזית שתמיד אומרת את הממוצע. כאן הביקוש הממוצע הוא 12 והשונות היא 5.2, ולכן R² = 1 − MSE / 5.2.

זה נותן 0.81 ל־A ו־0.04 ל־B. תחזית B בקושי טובה יותר מלחזות 12 כל יום, כי הפספוס האחד שלה בחמש עולה כמעט כמו כל הפיזור של הביקוש עצמו. R² בנוי על שגיאה ריבועית, ולכן הוא יורש את היחס של RMSE לפספוסים גדולים. השתמשתי בו לאורך הרשימה על כשל מחוץ להתפלגות, שם הוא יורד מתחת לאפס.

באיזה להשתמש

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

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

כשאפשר, מדווחים על שניהם. RMSE תמיד גדול או שווה ל־MAE, והם שווים רק כשלכל השגיאות אותו גודל, כמו בתחזית A. פער גדול ביניהם אומר שהשגיאה מרוכזת בכמה מקרים, ואלה המקרים שצריך לבדוק.

מה ששני המדדים מפספסים

אף אחד מהם לא מראה כיוון. השגיאות של תחזית A מסתכמות בממוצע ל־+0.2, קרוב לאיזון. של תחזית B ל־−1: כל פספוס שלה הוא תחזית חסר. בסחורה מתכלה, תחזית שתמיד חסרה פירושה מדפים ריקים בימים שבהם הביקוש הכי גבוה, ואז היסטוריית המכירות מסתירה את הביקוש הזה, כמו שמחושב ברשימה על ביקוש מצונזר.

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