CodeBlanks Logo Icon CodeBlanks

Değerlendirme

Modeli değerlendirirsin.

Değerlendirme

Son ölçüm test kümesinde bir kez yapılır. Raporda temel çizgi (DummyRegressor), ham özelliklerle model ve türetilmiş özelliklerle model yan yana gösterilir:

# temel:   her konuta ortalama fiyat
# ham:     10 sütun
# final:   12 sütun (oda başına m² ve log uzaklık eklenmiş)

Bu tablo projenin her adımının ne kazandırdığını açıkça gösterir.

Katsayıları yorumlamak

Ölçekli doğrusal modelde katsayılar "bir standart sapmalık değişimin fiyata etkisi"dir ve karşılaştırılabilir. İşaretler alan bilgisiyle uyuşmalı: metrekare pozitif, uzaklık ve yaş negatif:

ridge = final["ridge"]
for ad, c in zip(adlar, ridge.coef_):
    print(ad, round(c))

Beklenmedik bir işaret (ör. yaş pozitif) veri hatasının ya da ilişkili özelliklerin işaretidir.

Uygulama Final karşılaştırma

Test kümesinde üç modelin MAE'sini hesapla: DummyRegressor, ham 10 sütunla make_pipeline(StandardScaler(), Ridge(alpha=1.0)) ve aynı hattın 12 sütunlu (türetilmiş özellikli) final sürümü. Üç MAE'yi round ile tam sayı olarak aynı satırda yazdır.

Başlangıç kodu

model.py
import numpy as np

rng = np.random.default_rng(11)
n = 500
m2 = rng.uniform(40, 200, n)
oda = np.clip(np.round(m2 / 35 + rng.normal(0, 0.7, n)), 1, 6)
yas = rng.uniform(0, 40, n)
kat = rng.integers(0, 15, n)
merkez_km = rng.uniform(0.5, 25, n)
gurultu = rng.normal(size=(n, 5))
fiyat = 20 * m2 + 150 * m2 / oda - 2500 * np.log1p(merkez_km) - 40 * yas + 60 * kat + rng.normal(0, 300, n)
X = np.column_stack([m2, oda, yas, kat, merkez_km, gurultu])
X2 = np.column_stack([X, m2 / oda, np.log1p(merkez_km)])
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X2, fiyat, test_size=0.25, random_state=0)
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import Ridge
from sklearn.dummy import DummyRegressor
from sklearn.metrics import mean_absolute_error

# buraya yaz

Örnek çözüm

model.py
import numpy as np

rng = np.random.default_rng(11)
n = 500
m2 = rng.uniform(40, 200, n)
oda = np.clip(np.round(m2 / 35 + rng.normal(0, 0.7, n)), 1, 6)
yas = rng.uniform(0, 40, n)
kat = rng.integers(0, 15, n)
merkez_km = rng.uniform(0.5, 25, n)
gurultu = rng.normal(size=(n, 5))
fiyat = 20 * m2 + 150 * m2 / oda - 2500 * np.log1p(merkez_km) - 40 * yas + 60 * kat + rng.normal(0, 300, n)
X = np.column_stack([m2, oda, yas, kat, merkez_km, gurultu])
X2 = np.column_stack([X, m2 / oda, np.log1p(merkez_km)])
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X2, fiyat, test_size=0.25, random_state=0)
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import Ridge
from sklearn.dummy import DummyRegressor
from sklearn.metrics import mean_absolute_error

temel = DummyRegressor().fit(X_train, y_train)
ham = make_pipeline(StandardScaler(), Ridge(alpha=1.0)).fit(X_train[:, :10], y_train)
final = make_pipeline(StandardScaler(), Ridge(alpha=1.0)).fit(X_train, y_train)
print(round(mean_absolute_error(y_test, temel.predict(X_test))), round(mean_absolute_error(y_test, ham.predict(X_test[:, :10]))), round(mean_absolute_error(y_test, final.predict(X_test))))

Beklenen çıktı

2387 852 218

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İki türetilmiş sütun eklenince doğrusal modelin MAE'si yarıdan fazla düşüyorsa ne söylenir?

  • Türetilmiş sütunlar sızıntıdır
  • Model aşırı öğrenmiştir
  • Test kümesi hatalıdır
  • Ham sütunlar, doğrusal modelin göremediği ilişkileri gizliyordu Doğru cevap

Açıklama: Oran ve logaritma ilişkileri doğrusal bir modele ancak sütun olarak verilince öğrenilebilir.

2 Temel regresörü oluştur.

Soru
temel = ____().fit(X_train, y_train)
Cevap
temel = DummyRegressor().fit(X_train, y_train)

Açıklama: DummyRegressor varsayılan olarak ortalamayı tahmin eder.

3 Rapor satırlarını eşleştir.

Kavram Anlamı
DummyRegressor Temel çizgi
ham model Özellik işi öncesi
final model Türetilmiş özelliklerle
katsayı işareti Alan bilgisiyle denetim

Orta seviye bölümündeki tüm dersler