Python'da mape nasıl hesaplanır
Ortalama mutlak yüzde hatası (MAPE), modellerin tahmin doğruluğunu ölçmek için yaygın olarak kullanılır. Aşağıdaki şekilde hesaplanır:
MAPE = (1/n) * Σ(|gerçek – tahmin| / |gerçek|) * 100
Altın:
- Σ – “toplam” anlamına gelen bir sembol
- n – örneklem büyüklüğü
- gerçek – verilerin gerçek değeri
- tahmin – tahmin edilen verilerin değeri
MAPE, yorumlanması ve açıklanması kolay olduğundan yaygın olarak kullanılmaktadır. Örneğin %11,5’lik bir MAPE değeri, tahmin edilen değer ile gerçek değer arasındaki ortalama farkın %11,5 olduğu anlamına gelir.
MAPE değeri ne kadar düşük olursa, model değerleri o kadar iyi tahmin edebilir. Örneğin, MAPE’si %5 olan bir model, MAPE’si %10 olan bir modelden daha doğrudur.
Python’da MAPE nasıl hesaplanır
MAPE’yi hesaplamak için yerleşik bir Python işlevi yoktur, ancak bunu yapmak için basit bir işlev oluşturabiliriz:
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
Daha sonra bu işlevi iki tablo için MAPE’yi hesaplamak için kullanabiliriz: biri gerçek veri değerlerini içeren, diğeri ise tahmin edilen veri değerlerini içeren.
actual = [12, 13, 14, 15, 15,22, 27] pred = [11, 13, 14, 14, 15, 16, 18] map(actual, pred) 10.8009
Sonuçlardan bu model için ortalama mutlak yüzde hatasının %10,8009 olduğunu görebiliriz. Yani tahmin edilen değer ile gerçekleşen değer arasındaki ortalama fark %10,8009’dur.
MAPE kullanımına ilişkin önlemler
MAPE’nin hesaplanması ve yorumlanması kolay olmasına rağmen kullanımının iki potansiyel dezavantajı vardır:
1. Mutlak yüzde hatasını hesaplama formülü |gerçek tahmin| olduğundan / |gerçek| bu, gerçek değerlerden herhangi birinin sıfır olması durumunda MAPE’nin tanımlanmayacağı anlamına gelir.
2. MAPE düşük hacimli verilerle kullanılmamalıdır. Örneğin, bir ürün için gerçek talep 2 ve tahmin 1 ise mutlak yüzde hata değeri |2-1| / |2| = %50, bu da tahminde yalnızca 1 birim sapma olsa bile tahmin hatasının oldukça yüksek görünmesine neden olur.