CodeBlanks Logo Icon CodeBlanks

L2 (Ridge)

L2 regularizasyonu, katsayıları küçültür ama sıfır yapmaz.

Ridge (L2)

Ridge kare cezası kullanır. Katsayıları sıfıra doğru küçültür ama genellikle tam sıfır yapmaz. İlişkili özelliklerde ağırlığı aralarında paylaştırır; bu yüzden Lasso'dan daha kararlıdır:

from sklearn.linear_model import Ridge
for a in [0.01, 1, 100]:
    m = Ridge(alpha=a).fit(Xs, y)
    print(a, round(np.abs(m.coef_).sum(), 2), (m.coef_ == 0).sum())   # hiç sıfır yok

Ridge'in kapalı bir çözümü vardır: w = (XᵀX + αI)⁻¹Xᵀy; αI terimi XᵀX tersinir olmasa bile çözümü mümkün kılar.

Ridge, Lasso ve özdeş sütunlar

Farkı görmenin en net yolu bir sütunu kopyalamaktır:

X2 = np.column_stack([Xs[:, 0], Xs[:, 0]])
print(Ridge(alpha=1).fit(X2, y).coef_.round(2))   # [1.4 1.4]  paylaşır
print(Lasso(alpha=0.1).fit(X2, y).coef_.round(2))  # [2.7 0. ]  birini seçer

Hangi davranışın istendiği soruya bağlıdır: yorumlanabilir seyrek model için Lasso, kararlı tahmin için Ridge.

Uygulama Özdeş sütunlar

İlk sütunun iki kopyasından oluşan X2 ile Ridge(alpha=1) ve Lasso(alpha=0.1) eğit. İki katsayı dizisini np.round(..., 2) ile alt alta yazdır.

Başlangıç kodu

model.py
import numpy as np
from sklearn.preprocessing import StandardScaler

rng = np.random.default_rng(0)
X = rng.normal(size=(60, 20))
y = 3 * X[:, 0] - 2 * X[:, 1] + 1.5 * X[:, 2] + rng.normal(0, 1, 60)
Xs = StandardScaler().fit_transform(X)
from sklearn.linear_model import Ridge, Lasso

X2 = np.column_stack([Xs[:, 0], Xs[:, 0]])

# buraya yaz

Örnek çözüm

model.py
import numpy as np
from sklearn.preprocessing import StandardScaler

rng = np.random.default_rng(0)
X = rng.normal(size=(60, 20))
y = 3 * X[:, 0] - 2 * X[:, 1] + 1.5 * X[:, 2] + rng.normal(0, 1, 60)
Xs = StandardScaler().fit_transform(X)
from sklearn.linear_model import Ridge, Lasso

X2 = np.column_stack([Xs[:, 0], Xs[:, 0]])

print(np.round(Ridge(alpha=1).fit(X2, y).coef_, 2))
print(np.round(Lasso(alpha=0.1).fit(X2, y).coef_, 2))

Beklenen çıktı

[1.43 1.43]
[2.78 0.  ]

Soru ve cevaplar

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

1 İki özdeş sütun varsa Ridge katsayıları nasıl dağıtır?

  • Eşit olarak paylaştırır Doğru cevap
  • Birini sıfırlar
  • İkisini de sıfırlar
  • Hata verir

Açıklama: Kare ceza, toplam etki aynıyken katsayıların eşit olmasını tercih eder.

2 Kare cezalı modeli oluştur.

Soru
m = ____(alpha=1.0)
Cevap
m = Ridge(alpha=1.0)

Açıklama: Ridge L2 cezası uygular.

3 Davranışları eşleştir.

Kavram Anlamı
Ridge Ağırlığı paylaştırır
Lasso Birini seçer
αI Tersinirlik sağlar
kare ceza Sıfıra yakın, sıfır değil

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