PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?
Cevap
PCA, verideki varyansı en çok açıklayan ortogonal yönleri (principal component) bulan doğrusal bir boyut indirgeme yöntemidir. Veriyi bu yönlere projekte edip ilk k bileşeni tutarak bilgi kaybını minimumda tutar.
Adımlar
- Veriyi merkezle (ortalamayı çıkar), genelde standardize et.
- Kovaryans matrisini hesapla veya doğrudan SVD uygula.
- Eigenvector'lar (yönler) ve eigenvalue'lar (o yöndeki varyans) bulunur.
- En büyük eigenvalue'lara karşılık gelen k vektör seçilir ve veri bu alt uzaya projekte edilir.
import numpy as np
def pca(X, k):
Xc = X - X.mean(axis=0)
U, S, Vt = np.linalg.svd(Xc, full_matrices=False)
explained = S**2 / (S**2).sum()
return Xc @ Vt[:k].T, explained[:k]k seçimi için genelde kümülatif açıklanan varyans oranına bakılır (örneğin %95).
Ne zaman kullanılır?
- Yüksek boyutlu veride görselleştirme (2D/3D).
- Multicollinearity'yi gidermek, gürültüyü azaltmak.
- Sonraki modeli hızlandırmak, bellek kazanmak.
Ne zaman uygun değil?
- İlişkiler doğrusal değilse (t-SNE, UMAP, autoencoder daha iyi). t-SNE ve UMAP ise genelde sadece görselleştirme içindir.
- Yorumlanabilirlik önemliyse: bileşenler orijinal özelliklerin karışımıdır.
- Ölçeklendirilmemiş veride: büyük ölçekli özellik bileşenleri domine eder.
- Yüksek varyans her zaman hedefle ilgili demek değildir. Denetimli problemde düşük varyanslı ama önemli bir sinyal atılabilir.
İlgili Makine Öğrenmesi soruları
- Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.
- Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?
- NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?
- XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?
- Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.
- Lineer regresyon ile lojistik regresyon arasındaki fark nedir? Lojistik regresyonda neden MSE yerine log-loss kullanılır?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.