Hata ölçümü
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 45/112
- 5 dk
MSE ve MAE gibi metrikler ile regresyon hatası ölçülür.
MAE ve MSE
Regresyon modelini ölçmek için tahminler gerçek değerlerle karşılaştırılır:
- MAE (ortalama mutlak hata):
mean(|y - ŷ|), verinin biriminde. - MSE (ortalama kare hata):
mean((y - ŷ)²), büyük hataları daha çok cezalandırır. - RMSE:
√MSE, yeniden verinin birimine döner.
from sklearn.metrics import mean_absolute_error, mean_squared_error
y = [3, 5, 7]
p = [2, 5, 9]
print(mean_absolute_error(y, p)) # 1.0
print(mean_squared_error(y, p)) # 1.666...R² skoru
R², modelin y'deki değişkenliğin ne kadarını açıkladığını söyler: 1 kusursuz, 0 "her zaman ortalamayı tahmin et" kadar iyi, negatif ondan da kötü.
from sklearn.metrics import r2_score
print(r2_score([3, 5, 7], [3, 5, 7])) # 1.0
print(r2_score([3, 5, 7], [5, 5, 5])) # 0.0
print(m.score(X_test, y_test)) # regresyonda score = R²R² birimden bağımsızdır; MAE/RMSE ise "ortalama kaç TL yanılıyor?" sorusuna cevap verir. İkisi birlikte raporlanmalıdır.
Uygulama Modeli ölç
Modeli eğit, X için tahminleri al. MAE, MSE ve R² değerlerini round(..., 3) ile yuvarlayıp alt alta yazdır.
Başlangıç kodu
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([3.1, 4.9, 7.2, 8.8, 11.0])
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
# buraya yazÖrnek çözüm
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([3.1, 4.9, 7.2, 8.8, 11.0])
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
m = LinearRegression().fit(X, y)
p = m.predict(X)
print(round(mean_absolute_error(y, p), 3))
print(round(mean_squared_error(y, p), 3))
print(round(r2_score(y, p), 3))Beklenen çıktı
0.12 0.018 0.998
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Gerçek <code>[10, 20]</code>, tahmin <code>[12, 16]</code> ise MAE kaçtır?
- 3.0 Doğru cevap
- 10.0
- 2.0
- 6.0
Açıklama: |10-12| = 2, |20-16| = 4; ortalama (2 + 4) / 2 = 3.
2 Ortalama mutlak hatayı hesapla.
hata = mean______error(y_true, y_pred)
hata = mean_absolute_error(y_true, y_pred)
Açıklama: mean_absolute_error MAE, mean_squared_error MSE verir.
3 Metrikleri eşleştir.
| Kavram | Anlamı |
|---|---|
MAE |
Mutlak hataların ortalaması |
MSE |
Kare hataların ortalaması |
RMSE |
MSE'nin karekökü |
R² |
Açıklanan varyans oranı |