Makine öğrenmesi modellerinde aşırı öğrenme (overfitting), modelin eğitim verilerine gereğinden fazla uyum sağlayarak yeni verilerde düşük performans göstermesine neden olur. Regülarizasyon, bu sorunu çözmek için modelin karmaşıklığını cezalandıran bir tekniktir. En yaygın regülarizasyon yöntemleri olan L1 (Lasso) ve L2 (Ridge), katsayılara farklı şekillerde kısıtlamalar getirir. Bu yazıda L1 ve L2 regülarizasyonun teorik temellerini, pratik farklarını ve hangi durumda hangisinin kullanılması gerektiğini karşılaştırmalı olarak inceleyeceğiz.
Regülarizasyonun Temel Mantığı
Regülarizasyon, lineer regresyon gibi modellerde kayıp fonksiyonuna bir ceza terimi ekleyerek katsayıların (ağırlıkların) büyümesini engeller. Bu sayede model daha basit hale gelir ve genelleme yeteneği artar. Kayıp fonksiyonu genel formu şöyledir:
Loss = RSS + λ * Ceza Terimi
Burada RSS (Residual Sum of Squares) hata terimini, λ (lambda) ise ceza şiddetini belirleyen hiperparametredir. λ arttıkça ceza artar, katsayılar küçülür. λ seçimi kritiktir; çok büyük olursa model yetersiz öğrenme (underfitting) yapabilir. λ değerini belirlemek için genellikle hiperparametre optimizasyonu yöntemleri kullanılır.
Ridge Regresyon (L2 Regülarizasyon)
Ridge regresyonu, ceza terimi olarak katsayıların karelerinin toplamını (L2 normu) kullanır: λ * Σ(w_j²). L2 cezası, katsayıları sıfıra yaklaştırmaya zorlar ancak tam olarak sıfır yapmaz. Bu nedenle Ridge, tüm değişkenleri modelde tutar ancak etkilerini azaltır. Ridge özellikle çoklu bağlantı (multicollinearity) durumunda etkilidir; benzer değişkenlerin katsayılarını birbirine yaklaştırarak modelin kararlılığını artırır.
Lasso Regresyon (L1 Regülarizasyon)
Lasso (Least Absolute Shrinkage and Selection Operator), ceza terimi olarak katsayıların mutlak değerlerinin toplamını (L1 normu) kullanır: λ * Σ|w_j|. L1 cezası, bazı katsayıları tam olarak sıfır yapma özelliğine sahiptir. Bu sayede Lasso, değişken seçimi (feature selection) yaparak modeli otomatik olarak basitleştirir. Yüksek boyutlu veri kümelerinde (örneğin, değişken sayısı gözlem sayısından fazla) Lasso etkili bir yöntemdir.
Ridge ve Lasso Arasındaki Temel Farklar
Aşağıdaki tabloda iki yöntemin karşılaştırmasını bulabilirsiniz:
| Özellik | Ridge (L2) | Lasso (L1) |
|---|---|---|
| Ceza terimi | Katsayı kareleri toplamı | Katsayı mutlak değer toplamı |
| Katsayılar | Sıfıra yaklaşır, tam sıfır olmaz | Bazı katsayılar tam sıfır olabilir |
| Değişken seçimi | Yapmaz | Yapar (sparse modeller) |
| Çoklu bağlantı | Etkili çözüm | Zayıf kalabilir |
| Yüksek boyutlu veri | İşe yarar ancak tüm değişkenler kalır | Boyut indirgeme ve seçim için uygun |
| Tahmin performansı | Genellikle daha iyi (düşük varyans) | Değişken seçimi doğruysa iyi |
| Yorumlanabilirlik | Daha zor (tüm değişkenler var) | Daha kolay (az sayıda değişken) |
Ne Zaman Hangi Yöntemi Kullanmalı?
Ridge Regresyonu Tercih Edin:
- Veri kümesinde tüm değişkenlerin (veya çoğunun) anlamlı olduğunu düşünüyorsanız.
- Değişkenler arasında yüksek korelasyon (çoklu bağlantı) varsa, Ridge katsayıları dengeler.
- Modelin tahmin gücü yorumlanabilirlikten daha önemliyse.
- Değişken sayısı çok fazla olmasa da genel bir düzenlileştirme istiyorsanız.
Lasso Regresyonu Tercih Edin:
- Veri kümesinde gereksiz veya gürültülü değişkenler olduğundan şüpheleniyorsanız.
- Yorumlanabilir, basit bir model istiyorsanız (az sayıda değişkenle çalışmak).
- Yüksek boyutlu verilerle çalışıyorsanız (özellikle p > n durumu).
- Otomatik değişken seçimi yaparak model boyutunu küçültmek istiyorsanız.
Örneğin, bir müşteri kaybı tahmin modelinde 100 özellik varsa ve çoğu anlamsızsa Lasso ile anlamlı olanları seçebilirsiniz. Diğer yandan, bir fiyat tahmin modelinde tüm özelliklerin (oda sayısı, konum, yaş vb.) bir miktar katkı sağladığını biliyorsanız Ridge daha uygun olacaktır.
Pratik Uygulama ve Hiperparametre Ayarı
Hem Ridge hem de Lasso'da λ (alpha) hiperparametresini optimize etmek gerekir. Genellikle cross-validation ile en iyi λ değeri bulunur. Model performansını değerlendirirken eksik veri yönetimi ve ölçeklendirme gibi ön işleme adımları da önemlidir. Örneğin, Ridge ve Lasso katsayıların ölçeğine duyarlıdır; bu nedenle özellikleri standartlaştırmak (z-skor) iyi bir uygulamadır.
Aşağıda bir Python örneği (scikit-learn) ile Ridge ve Lasso'nun karşılaştırması gösterilmiştir:
from sklearn.linear_model import Ridge, Lasso
from sklearn.model_selection import GridSearchCV
# Ridge için parametre aralığı
ridge = Ridge()
params = {'alpha': [0.1, 1, 10, 100]}
grid_ridge = GridSearchCV(ridge, params, scoring='r2', cv=5)
grid_ridge.fit(X_train, y_train)
print("En iyi Ridge alpha:", grid_ridge.best_params_)
# Lasso için
lasso = Lasso()
grid_lasso = GridSearchCV(lasso, params, scoring='r2', cv=5)
grid_lasso.fit(X_train, y_train)
print("En iyi Lasso alpha:", grid_lasso.best_params_)
Bu kod, 5 katlı çapraz doğrulama ile en iyi λ değerini bulur. Doğru cross-validation yöntemi seçimi de sonuçları etkiler.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
- λ değerini çok büyük seçmek: Aşırı düzenlileştirme underfitting'e yol açar. Model eğitim verisinde bile düşük performans gösterir.
- Ölçeklendirmeyi unutmak: Regülarizasyon yöntemleri, ölçeğe duyarlı olduğu için özelliklerin standartlaştırılması gerekir.
- Lasso'yu çoklu bağlantı durumunda kullanmak: Lasso yüksek korelasyonlu değişkenlerden yalnızca birini seçer, diğerlerini sıfırlar. Bu, bilgi kaybına neden olabilir.
- Sadece Lasso'ya güvenmek: Lasso'nun değişken seçimi bazen kararsız olabilir; farklı veri bölümlerinde farklı değişkenler seçilebilir.
- Elastik Net’i göz ardı etmek: Hem L1 hem L2 cezasını birleştiren Elastic Net genellikle daha iyi sonuç verir. Özellikle değişken sayısı fazlaysa Elastic Net tercih edilmelidir.
Sonuç: Ridge ve Lasso Arasında Seçim Yapmak
Ridge ve Lasso arasındaki seçim, verinin yapısına ve proje hedeflerine bağlıdır. Ridge daha kararlı tahminler sunarken, Lasso yorumlanabilirliği ve değişken seçimiyle öne çıkar. Pratikte, her iki yöntemi de deneyip cross-validation sonuçlarına göre karar vermek en doğrusudur. Unutmayın ki regülarizasyon, makine öğrenmesi modellerinin olmazsa olmazıdır ve doğru uygulandığında performansı önemli ölçüde artırır.
Sık Sorulan Sorular
L1 ve L2 regülarizasyonu arasındaki temel fark nedir?
L1 regülarizasyonu (Lasso) katsayıların mutlak değerlerini cezalandırarak bazı katsayıları sıfır yapar ve değişken seçimi sağlar. L2 regülarizasyonu (Ridge) ise katsayıların karelerini cezalandırarak katsayıları sıfıra yaklaştırır ancak tam sıfır yapmaz, böylece tüm değişkenler modelde kalır.
Hangi durumda Ridge regresyonu Lasso'dan daha iyidir?
Ridge, çoklu bağlantı (değişkenler arasında yüksek korelasyon) olduğunda ve tüm değişkenlerin anlamlı olduğu düşünüldüğünde daha iyidir. Ayrıca tahmin performansı genellikle Ridge'de daha yüksektir.
Lasso regresyonu değişken seçimini nasıl yapar?
Lasso, L1 cezası nedeniyle bazı katsayıları tam olarak sıfıra iter. Bu sayede önemsiz veya gürültülü değişkenler modelden çıkarılır, sadece önemli değişkenler kalır. Bu özellik yüksek boyutlu verilerde etkilidir.
Ridge ve Lasso için lambda (α) değeri nasıl seçilir?
Lambda değeri genellikle çapraz doğrulama (cross-validation) ile seçilir. GridSearchCV gibi yöntemlerle farklı lambda değerleri denenir ve en iyi performansı veren değer seçilir. Lambda büyüdükçe ceza artar, model basitleşir.
Ridge ve Lasso dışında hangi regülarizasyon yöntemleri vardır?
Elastic Net hem L1 hem L2 cezasını birleştirir ve avantajlarını bir araya getirir. Ayrıca sinir ağlarında kullanılan dropout, erken durdurma (early stopping) gibi yöntemler de regülarizasyon sağlar.






