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

  1. Veriyi merkezle (ortalamayı çıkar), genelde standardize et.
  2. Kovaryans matrisini hesapla veya doğrudan SVD uygula.
  3. Eigenvector'lar (yönler) ve eigenvalue'lar (o yöndeki varyans) bulunur.
  4. 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.
  1. Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.OrtaMakine ÖğrenmesiYapay Zeka
  2. Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?KolayMakine ÖğrenmesiYapay Zeka
  3. 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?ZorMakine ÖğrenmesiYapay Zeka
  4. XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?ZorMakine ÖğrenmesiYapay Zeka
  5. Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.OrtaMakine ÖğrenmesiYapay Zeka
  6. Lineer regresyon ile lojistik regresyon arasındaki fark nedir? Lojistik regresyonda neden MSE yerine log-loss kullanılır?KolayMakine ÖğrenmesiYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle