Makine Öğrenmesi
PCA vs t-SNE
PCA doğrusal, t-SNE doğrusal olmayan boyut indirgeme yöntemidir.
PCA ve t-SNE
t-SNE, yüksek boyutta yakın olan noktaları 2 boyutta da yakın tutmaya çalışan doğrusal olmayan bir yöntemdir. Yerel komşulukları korur; bu yüzden kümeler görsel olarak çok net ayrılır:
from sklearn.manifold import TSNE
Z = TSNE(n_components=2, perplexity=30, random_state=0).fit_transform(X)
Farklar: PCA doğrusal, hızlı ve deterministiktir, yeni veriye transform uygulanabilir. t-SNE doğrusal değil, yavaştır, rastgeledir ve transform yöntemi yoktur.
t-SNE grafiğini okumak
t-SNE grafiğinde dikkatli olunmalıdır:
- Küme boyutları anlamsızdır; yoğun kümeler genişleyebilir.
- Kümeler arası mesafeler güvenilir değildir.
perplexity sonucu çok değiştirir (5-50 arası denenir).- Farklı
random_state farklı yerleşim verir.
Güvenilir olan tek şey yerel komşuluktur: grafikte yan yana olan noktalar özgün uzayda da yakındır.
Uygulama Komşulukların korunması
Rakam verisinin ilk 500 örneğini PCA (2 bileşen) ve t-SNE (perplexity=30, random_state=0) ile 2 boyuta indir. Her iki 2 boyutlu gösterimde 5 komşulu KNN'in 5 katlı CV doğruluğunu round(..., 3) ile aynı satırda yazdır (önce PCA). Bu, yerel komşulukların ne kadar korunduğunu ölçer.
Örnek çözümü göster
import numpy as np
from sklearn.datasets import load_digits
X, y = load_digits(return_X_y=True)
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
X, y = X[:500], y[:500]
Zp = PCA(n_components=2).fit_transform(X)
Zt = TSNE(n_components=2, perplexity=30, random_state=0).fit_transform(X)
knn = KNeighborsClassifier(n_neighbors=5)
print(round(cross_val_score(knn, Zp, y, cv=5).mean(), 3), round(cross_val_score(knn, Zt, y, cv=5).mean(), 3))
Kendini test et
-
Neden t-SNE çıktısı bir sınıflandırıcıya girdi olarak kullanılmaz?
- Hep 3 boyut üretir
- Kullanılır
- Yeni veriye uygulanamaz ve mesafeleri bozar
- Çok doğrudur
Cevabı göster
Yeni veriye uygulanamaz ve mesafeleri bozar — t-SNE görselleştirme aracıdır; transform yoktur ve küme arası uzaklıklar anlamlı değildir.
-
t-SNE için komşuluk ölçeğini ayarla.
Z = TSNE(n_components=2, ____=30, random_state=0).fit_transform(X)
Cevabı göster
Z = TSNE(n_components=2, perplexity=30, random_state=0).fit_transform(X)
-
Özellikleri eşleştir.
- PCA
- Doğrusal, hızlı
- t-SNE
- Doğrusal değil, yerel
- transform
- Yalnızca PCA'da
- perplexity
- t-SNE komşuluk ölçeği
Sıradaki ders: Görselleştirme