Avantajlar
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 79/112
- 5 dk
Boyut indirgeme, aşırı öğrenmeyi azaltır ve model hızını artırır.
Avantajlar ve maliyet
Boyut indirgeme bir modeli hızlandırır ve bazen iyileştirir; ama bir bedeli vardır: bilgi kaybı ve yorumlanabilirliğin azalması. Kazancı ölçmenin yolu, aynı modeli indirgemeyle ve indirgemesiz karşılaştırmaktır:
for adim in ["passthrough", PCA(n_components=20)]:
pipe = make_pipeline(StandardScaler(), adim, SVC())
print(cross_val_score(pipe, X, y, cv=5).mean())Başarı benzer, süre belirgin kısaysa indirgeme kazançlıdır.
Doğrusal olmayan alternatifler
PCA doğrusal olmayan yapıları kaçırır. KernelPCA çekirdek hilesiyle PCA'yı kıvrımlı yapılara genişletir ve transform sunar; bu yüzden model öncesi kullanılabilir:
from sklearn.decomposition import KernelPCA
kp = KernelPCA(n_components=2, kernel="rbf", gamma=10)
Z = kp.fit_transform(X_halka) # iç içe halkaları ayırabilirUMAP (ayrı bir kitaplık) t-SNE'ye benzer görseller üretir ama daha hızlıdır ve yeni veriye uygulanabilir.
Uygulama İç içe halkalar
make_circles verisinde PCA ve KernelPCA(kernel="rbf", gamma=10) ile iki bileşene indir. Her iki boyutlu gösterimde LogisticRegression()'ın 5 katlı CV doğruluğunu round(..., 3) ile aynı satırda yazdır (önce PCA).
Başlangıç kodu
from sklearn.datasets import make_circles
from sklearn.decomposition import PCA, KernelPCA
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X, y = make_circles(n_samples=400, factor=0.3, noise=0.05, random_state=0)
# buraya yazÖrnek çözüm
from sklearn.datasets import make_circles
from sklearn.decomposition import PCA, KernelPCA
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X, y = make_circles(n_samples=400, factor=0.3, noise=0.05, random_state=0)
Zp = PCA(n_components=2).fit_transform(X)
Zk = KernelPCA(n_components=2, kernel="rbf", gamma=10).fit_transform(X)
m = LogisticRegression()
print(round(cross_val_score(m, Zp, y, cv=5).mean(), 3), round(cross_val_score(m, Zk, y, cv=5).mean(), 3))Beklenen çıktı
0.435 1.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İndirgeme sonrası CV skoru düşerse ne yapılmalıdır?
- Daha çok bileşen tutmak ya da indirgemeyi kaldırmak Doğru cevap
- Daha az bileşen tutmak
- Test kümesine bakmak
- Hiçbir şey
Açıklama: Düşüş, atılan bileşenlerin önemli bilgi taşıdığını gösterir.
2 Çekirdekli PCA kur.
kp = ____(n_components=2, kernel="rbf", gamma=10)
kp = KernelPCA(n_components=2, kernel="rbf", gamma=10)
Açıklama: KernelPCA sklearn.decomposition içindedir.
3 Yöntemleri eşleştir.
| Kavram | Anlamı |
|---|---|
PCA |
Doğrusal, transform var |
KernelPCA |
Doğrusal değil, transform var |
t-SNE |
Yalnızca görselleştirme |
passthrough |
İndirgemesiz karşılaştırma |