L2 (Ridge)
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 105/112
- 5 dk
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 yokRidge'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çerHangi 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
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
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.
m = ____(alpha=1.0)
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 |