PCA nedir?
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 69/112
- 5 dk
PCA (Principal Component Analysis), veriyi en çok varyansı koruyacak şekilde boyut indirger.
PCA nedir?
Temel bileşen analizi (PCA), veriyi en çok yayıldığı yönlere döndüren doğrusal bir dönüşümdür. Birinci bileşen varyansın en büyük olduğu yön, ikincisi ona dik ve kalan varyansın en büyük olduğu yöndür; böyle devam eder.
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
Z = pca.fit_transform(Xs) # 13 özellik -> 2 bileşen
print(Z.shape)Az sayıda bileşen verinin bilgisinin çoğunu taşıyorsa boyut büyük ölçüde azaltılabilir.
Önce ölçekle
PCA varyansa baktığı için birimi büyük özellik ilk bileşeni ele geçirir. Şarap verisinde proline (~1000) ölçeklenmeden PCA yapılırsa ilk bileşen neredeyse tamamen proline olur:
ham = PCA(n_components=1).fit(X)
print(abs(ham.components_[0]).argmax()) # 12: proline
olcekli = PCA(n_components=1).fit(Xs)
print(abs(olcekli.components_[0]).round(2)) # yük birçok özelliğe dağılırFarklı birimli verilerde PCA'dan önce StandardScaler neredeyse her zaman gereklidir.
Uygulama Ölçeğin etkisi
Ham X ve ölçekli Xs üzerinde tek bileşenli PCA eğit. Her biri için ilk bileşende mutlak yükü en büyük özelliğin indeksini aynı satırda yazdır (önce ham).
Başlangıç kodu
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)
# buraya yazÖrnek çözüm
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)
ham = PCA(n_components=1).fit(X)
olcekli = PCA(n_components=1).fit(Xs)
print(abs(ham.components_[0]).argmax(), abs(olcekli.components_[0]).argmax())Beklenen çıktı
12 6
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 PCA'nın ikinci bileşeni birinciyle nasıl ilişkilidir?
- Aynı yöndür
- İlişki yoktur, rastgeledir
- Ona diktir (ilişkisizdir) Doğru cevap
- Ona paraleldir
Açıklama: Bileşenler birbirine diktir; dönüştürülmüş sütunlar arasında korelasyon yoktur.
2 Veriyi iki temel bileşene indir.
Z = PCA(____=2).fit_transform(Xs)
Z = PCA(n_components=2).fit_transform(Xs)
Açıklama: n_components tutulacak bileşen sayısıdır.
3 Kavramları eşleştir.
| Kavram | Anlamı |
|---|---|
1. bileşen |
En büyük varyans yönü |
2. bileşen |
Birinciye dik |
components_ |
Bileşen yönleri |
ölçekleme |
Birim baskınlığını önler |