Sklearn.decomposition.PCA: получить компоненты по заданному соотношению - PullRequest
0 голосов
/ 24 октября 2019

Я хочу использовать PCA для некоторых данных, чтобы получить главные принципиальные компоненты матрицы, которые фиксируют 95% общей дисперсии. Я искал функцию, которая делает это, но я не мог найти способ.
Единственное, что я мог выяснить, было следующее:

from sklearn.decomposition import PCA
# W_0 is a matrix 
pca = PCA().fit(W_0)
# get the index of the component which has variance higher than 0.95
index_component = np.min(np.argwhere(np.cumsum(pca.explained_variance_ratio_)>0.95))
# Now fit again with the given component 
pca = PCA(n_components= index_component+1)
pca.fit(W_0)

Проблема с этим подходом состоит в том, что я подгоняю двавремена, которые являются узким местом производительности. Есть ли лучший способ сделать это?

1 Ответ

2 голосов
/ 24 октября 2019

Из документации вы можете видеть, что если 0

Чтобы получить компоненты, которые удовлетворяют как минимум 95% -ной дисперсии, используйте PCA (n_components = 0,95, svd_solver = 'full')

...