CodeBlanks Logo Icon CodeBlanks

explained_variance_

explained_variance_ her bileşenin varyans oranını verir.

explained_variance_ratio_

explained_variance_ratio_, her bileşenin toplam varyansın ne kadarını açıkladığını verir. Kümülatif toplamı "ilk k bileşen bilginin yüzde kaçını tutuyor?" sorusunu cevaplar:

pca = PCA().fit(Xs)
print(pca.explained_variance_ratio_[:3].round(3))
kum = np.cumsum(pca.explained_variance_ratio_)
print(np.argmax(kum >= 0.9) + 1)   # %90 için gereken bileşen

Bu değerler çizgi grafiğiyle çizildiğinde "scree plot" adı verilir; dirsek noktası bileşen sayısı için ipucudur.

Bileşen yüklerini okumak

components_ satırları bileşenlerdir; her satırdaki değerler (yükler) o bileşenin hangi özelliklerden oluştuğunu gösterir. Mutlak değeri büyük yükler bileşenin anlamını verir:

d = load_wine()
yuk = pca.components_[0]
for i in np.argsort(-abs(yuk))[:3]:
    print(d.feature_names[i], round(yuk[i], 2))

Yüklerin işareti tek başına anlamlı değildir (bileşen ters çevrilebilir); önemli olan aynı bileşendeki özelliklerin birbirine göre işaretidir.

Uygulama Açıklanan varyans

Ölçekli şarap verisinde tam PCA eğit. İlk üç bileşenin varyans oranlarını round(3) ile, ardından varyansın %80'ine ulaşmak için gereken bileşen sayısını np.argmax(kum >= 0.8) + 1 ile yazdır.

Başlangıç kodu

model.py
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

model.py
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)

pca = PCA().fit(Xs)
print(pca.explained_variance_ratio_[:3].round(3))
kum = np.cumsum(pca.explained_variance_ratio_)
print(np.argmax(kum >= 0.8) + 1)

Beklenen çıktı

[0.362 0.192 0.111]
5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Tüm bileşenlerin <code>explained_variance_ratio_</code> toplamı kaçtır?

  • 0
  • Toplam varyans
  • 1 Doğru cevap
  • Özellik sayısı

Açıklama: Oranlar toplam varyansa bölünmüş değerlerdir; toplamları 1'dir.

2 Açıklanan varyansın kümülatif toplamını al.

Soru
kum = np.____(pca.explained_variance_ratio_)
Cevap
kum = np.cumsum(pca.explained_variance_ratio_)

Açıklama: cumsum her konumda o ana kadarki toplamı verir.

3 Öznitelikleri eşleştir.

Kavram Anlamı
explained_variance_ Bileşen varyansı
explained_variance_ratio_ Varyans oranı
components_ Yükler
mean_ Merkezleme ortalaması

Orta seviye bölümündeki tüm dersler