كيفية حساب mape في بايثون
يُستخدم متوسط خطأ النسبة المطلقة (MAPE) بشكل شائع لقياس الدقة التنبؤية للنماذج. يتم حسابه على النحو التالي:
MAPE = (1/n) * Σ(|فعلي – تنبؤ| / |فعلي|) * 100
ذهب:
- Σ – رمز يعني “المجموع”
- ن – حجم العينة
- حقيقي – القيمة الفعلية للبيانات
- التنبؤ – قيمة البيانات المتوقعة
يتم استخدام MAPE بشكل شائع لأنه من السهل تفسيره وشرحه. على سبيل المثال، قيمة MAPE البالغة 11.5% تعني أن متوسط الفرق بين القيمة المتوقعة والقيمة الفعلية هو 11.5%.
كلما انخفضت قيمة MAPE، كانت قدرة النموذج على التنبؤ بالقيم أفضل. على سبيل المثال، يعتبر النموذج الذي يحتوي على MAPE بنسبة 5% أكثر دقة من النموذج الذي يحتوي على MAPE بنسبة 10%.
كيفية حساب MAPE في بايثون
لا توجد دالة بايثون مدمجة لحساب MAPE، لكن يمكننا إنشاء دالة بسيطة للقيام بذلك:
import numpy as np def mape( actual , pred ): actual, pred = np.array(actual), np.array(pred) return np.mean(np.abs((actual - pred) / actual)) * 100
يمكننا بعد ذلك استخدام هذه الوظيفة لحساب MAPE لجدولين: أحدهما يحتوي على قيم البيانات الفعلية والآخر يحتوي على قيم البيانات المتوقعة.
actual = [12, 13, 14, 15, 15,22, 27] pred = [11, 13, 14, 14, 15, 16, 18] map(actual, pred) 10.8009
ومن النتائج يمكننا أن نرى أن متوسط النسبة المئوية للخطأ المطلق لهذا النموذج هو 10.8009% . بمعنى آخر، متوسط الفرق بين القيمة المتوقعة والقيمة الفعلية هو 10.8009%.
احتياطات استخدام MAPE
على الرغم من سهولة حساب MAPE وتفسيره، إلا أن استخدامه له عيبان محتملان:
1. بما أن صيغة حساب النسبة المئوية للخطأ المطلق هي |التنبؤ الفعلي| / |حقيقي| وهذا يعني أنه لن يتم تعريف MAPE إذا كانت أي من القيم الفعلية صفراً.
2. لا ينبغي استخدام MAPE مع البيانات ذات الحجم المنخفض. على سبيل المثال، إذا كان الطلب الفعلي لأحد العناصر هو 2 والتنبؤ هو 1، فإن قيمة خطأ النسبة المئوية المطلقة ستكون |2-1| / |2| = 50%، مما يجعل خطأ التنبؤ يبدو مرتفعًا جدًا، حتى لو كان التوقع أقل بمقدار وحدة واحدة فقط.