Tahmin
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 95/112
- 7 dk
Model ile tahmin yaparsın.
Tahmin
Seçilen modelle test kümesindeki hastalar için tahmin yaparız. Tahminleri gerçek değerlerle yan yana görmek, modelin hangi aralıkta zorlandığını gösterir:
p = model.predict(X_test)
for gercek, tahmin in zip(y_test[:5], p[:5]):
print(f"{gercek:6.0f} {tahmin:8.1f}")Doğrusal modeller uç değerleri ortalamaya doğru çekme eğilimindedir: çok yüksek ilerlemeyi olduğundan düşük tahmin eder.
Kalıntıları incelemek
Kalıntıların ortalaması 0'a yakın olmalı ve belirgin bir desen göstermemelidir. En büyük mutlak kalıntılar, modelin en çok yanıldığı hastalardır:
kalinti = y_test - p
print(kalinti.mean().round(1))
en_kotu = np.argsort(np.abs(kalinti))[-3:]
print(y_test[en_kotu], p[en_kotu].round(0))np.argsort küçükten büyüğe sıralayan indeksleri verir; son üçü en büyük hatalardır.
Uygulama Tahmin ve kalıntı
model ile test tahminlerini al. İlk 3 tahmini np.round(..., 1) ile, ardından en büyük mutlak kalıntıyı round(..., 1) ile yazdır.
Başlangıç kodu
import numpy as np
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)
# buraya yazÖrnek çözüm
import numpy as np
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)
p = model.predict(X_test)
print(np.round(p[:3], 1))
kalinti = y_test - p
print(round(np.abs(kalinti).max(), 1))Beklenen çıktı
[238.5 248.9 164.1] 162.7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kalıntı (residual) nedir?
- Test kümesinin boyutu
- Gerçek değer eksi tahmin Doğru cevap
- Tahminlerin ortalaması
- Modelin ağırlığı
Açıklama: Kalıntı = y - ŷ; pozitifse model az, negatifse fazla tahmin etmiştir.
2 Mutlak kalıntıları küçükten büyüğe sıralayan indeksleri al.
sira = np.____(np.abs(kalinti))
sira = np.argsort(np.abs(kalinti))
Açıklama: argsort değerleri değil indeksleri döndürür.
3 İfadeleri eşleştir.
| Kavram | Anlamı |
|---|---|
y_test - p |
Kalıntılar |
np.abs(kalinti) |
Mutlak hata |
np.argsort(...)[-3:] |
En büyük üç hata |
kalinti.mean() |
Sistematik sapma |