olduğunu. pca.explained_variance_ratio_
parametresi, her boyutun açıkladığı varyansın bir vektörünü döndürür. Böylece pca.explained_variance_ratio_[i]
sadece i + 1 boyutunda açıklanan varyansı verir.
Muhtemelen pca.explained_variance_ratio_.cumsum()
yapmak istiyorsunuz. Bu x
bir x[i]
ilk i + 1 boyutları tarafından açıklanan kümülatif varyansı döndürecek şekilde döndürecektir. Ben k=4
aldı eğer
[ 1.50756565 1.29374452 0.97042041 0.61712667 0.31529082]
[ 0.32047581 0.27502207 0.20629036 0.13118776 0.067024 ]
[ 0.32047581 0.59549787 0.80178824 0.932976 1. ]
import numpy as np
from sklearn.decomposition import PCA
np.random.seed(0)
my_matrix = np.random.randn(20, 5)
my_model = PCA(n_components=5)
my_model.fit_transform(my_matrix)
print my_model.explained_variance_
print my_model.explained_variance_ratio_
print my_model.explained_variance_ratio_.cumsum()
Yani benim rastgele oyuncak verilerinde, ben varyansın% 93.3 koruyacak.
T seni çok seviyorum! Harika bir açıklama! Bazen Python el kitabı zayıf belgelenmiştir/açıklanmıştır. Tamamen aydınlandım! – Chubaka
Bir soru daha: PCA (n_components = 1) yaptığımızda, scikit "PCA" komutlarının "normalleştirilmiş verilerden kovaryans matrisini hesapla" ve "Özdeğerleri hesaplamak için tek değerli ayrıştırma (SVD) kullan" komutunu öğrenir? Python scikit PCA modülünde özvektörler hesaplamak için başka yöntemler seçmek için herhangi bir yer görmüyorum. – Chubaka
Harika cevap! Bu gerçekten bana yardımcı oldu – Mikim