CodeBlanks Logo Icon CodeBlanks

Hata ölçümü

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

model.py
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

model.py
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.

Soru
hata = mean______error(y_true, y_pred)
Cevap
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ı

Başlangıç bölümündeki tüm dersler