Этот вопрос является в основном дубликатом этого вопроса - извиняюсь, поскольку я новичок здесь и не смог найти способ "поднять" этот другой вопрос, поэтому я задаю новыйодин.Но у меня точно такой же вопрос, и я не смог найти удовлетворительного объяснения.
Почему explained_variance_ratio_
из TruncatedSVD
не в порядке убывания, как это было бы из PCA
?По моему опыту кажется, что первый элемент списка всегда самый низкий, а затем у второго элемента значение скачет вверх, а затем идет в порядке убывания оттуда.Почему explained_variance_ratio_[0]
<<code>explained_variance_ratio_[1] (> explained_variance_ratio_[2]
> explained_variance_ratio_[3]
...)?Означает ли это, что второй «компонент» на самом деле объясняет наибольшую дисперсию (не первую)?
Код для воспроизведения поведения:
from sklearn.decomposition import TruncatedSVD
n_components = 50
X_test = np.random.rand(50,100)
model = TruncatedSVD(n_components=n_components, algorithm = 'randomized')
model.fit_transform(X_test)
model.explained_variance_ratio_