Makine Öğrenmesi
fit_transform
fit_transform, PCA'yı eğitir ve veriyi dönüştürür.
fit_transform ve inverse_transform
fit_transform bileşenleri öğrenir ve veriyi bileşen uzayına taşır. inverse_transform geri döndürür; atılan bileşenlerin bilgisi kayıp olduğu için sonuç özgün verinin bir yaklaşığıdır:
pca = PCA(n_components=4)
Z = pca.fit_transform(Xs) # (178, 4)
X_geri = pca.inverse_transform(Z) # (178, 13), yaklaşık
hata = ((Xs - X_geri) ** 2).mean()
print(round(hata, 3))
Yeniden oluşturma hatası atılan varyansla orantılıdır; anomali tespitinde de kullanılır: zor yeniden oluşturulan örnekler sıradışıdır.
Bileşen uzayında model
PCA çoğu zaman bir modelden önce kullanılır: daha az boyut, daha hızlı eğitim ve ilişkili özelliklerin birleştirilmesi. Doğru kullanım yine pipeline içindedir ki PCA yalnızca eğitim verisinde öğrensin:
pipe = make_pipeline(StandardScaler(), PCA(n_components=5), LogisticRegression(max_iter=1000))
print(cross_val_score(pipe, X, y, cv=5).mean())
Bileşenler artık özgün özellikler değildir; "1. bileşen" gibi soyut sütunlardır ve yorumlanmaları zorlaşır.
Uygulama Yeniden oluşturma hatası
Bileşen sayısı 2, 6 ve 13 için PCA ile ölçekli veriyi indirip geri döndür. Her satırda bileşen sayısını ve ortalama kare yeniden oluşturma hatasını round(..., 3) ile yazdır.
Örnek çözümü göster
import numpy as np
from sklearn.datasets import load_wine
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
X, y = load_wine(return_X_y=True)
Xs = StandardScaler().fit_transform(X)
for k in [2, 6, 13]:
pca = PCA(n_components=k)
X_geri = pca.inverse_transform(pca.fit_transform(Xs))
print(k, round(((Xs - X_geri) ** 2).mean(), 3))
Kendini test et
-
Tüm bileşenler tutulursa <code>inverse_transform(transform(X))</code> neyi verir?
- Sıfır matrisi
- Yaklaşık bir X
- Hata
- X'in kendisini (kayan nokta hassasiyetinde)
Cevabı göster
X'in kendisini (kayan nokta hassasiyetinde) — Tam döndürme kayıpsızdır; geri dönüşüm de kayıpsızdır.
-
Bileşen uzayından özgün uzaya dön.
X_geri = pca.____(Z)
Cevabı göster
X_geri = pca.inverse_transform(Z)
-
Yöntemleri eşleştir.
- fit_transform
- Öğren ve indir
- transform
- Yeni veriyi indir
- inverse_transform
- Yaklaşık geri dönüş
- yeniden oluşturma hatası
- Atılan bilgi
Sıradaki ders: explained_variance_