Я хочу использовать 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)
Проблема с этим подходом состоит в том, что я подгоняю двавремена, которые являются узким местом производительности. Есть ли лучший способ сделать это?