Makine Öğrenmesi
Hata ölçümü
MSE ile hata ölçersin.
Hata ölçümü
Son adım, seçilen modeli test kümesinde bir kez ölçmek ve temel çizgiyle karşılaştırmaktır:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
p = model.predict(X_test)
print(mean_absolute_error(y_test, p))
print(mean_squared_error(y_test, p) ** 0.5) # RMSE
print(r2_score(y_test, p))
RMSE MAE'den belirgin büyükse, birkaç büyük hata toplam hatayı domine ediyor demektir.
Sonucu yorumlamak
Rapor, sayıları anlamlandırmalıdır: modelin temel çizgiye göre hatayı yüzde kaç azalttığı, hedef aralığına göre hatanın büyüklüğü ve sınırlamalar.
iyilesme = 1 - mae_model / mae_temel
print(f"Model, ortalama tahminine göre hatayı %{100 * iyilesme:.0f} azaltıyor.")
Diyabet verisinde R² yaklaşık 0.3-0.4 civarıdır: model yararlıdır ama ilerlemenin çoğunu bu 10 ölçüm açıklayamaz. Bunu açıkça yazmak dürüst bir sonuçtur.
Uygulama Final raporu
Test kümesinde modelin MAE'sini ve DummyRegressor temelinin MAE'sini hesapla. İkisini round(..., 1) ile aynı satırda, ardından iyileşme yüzdesini f"%{100 * iyilesme:.0f}" biçiminde yazdır.
Örnek çözümü göster
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(X_train, y_train)
from sklearn.dummy import DummyRegressor
from sklearn.metrics import mean_absolute_error
temel = DummyRegressor().fit(X_train, y_train)
mae_model = mean_absolute_error(y_test, model.predict(X_test))
mae_temel = mean_absolute_error(y_test, temel.predict(X_test))
print(round(mae_model, 1), round(mae_temel, 1))
iyilesme = 1 - mae_model / mae_temel
print(f"%{100 * iyilesme:.0f}")
Kendini test et
-
MAE = 45, RMSE = 70 ise ne söylenebilir?
- Birkaç büyük hata var
- Tüm hatalar eşit
- Model kusursuz
- RMSE her zaman MAE'dir
Cevabı göster
Birkaç büyük hata var — Kare alma büyük hataları büyüttüğü için RMSE onlara daha duyarlıdır.
-
RMSE'yi MSE'nin karekökünden hesapla.
rmse = mean_squared_error(y_test, p) ____
Cevabı göster
rmse = mean_squared_error(y_test, p) ** 0.5
-
Sonuçları eşleştir.
- MAE
- Ortalama yanılma
- RMSE
- Büyük hatalara duyarlı
- R²
- Açıklanan oran
- 1 - mae / mae_temel
- Temele göre iyileşme
Sıradaki ders: Metrik nedir?