scikit学习截短SVD解释了方差比不按降序排列?

2024-04-19 03:44:56 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题基本上是this question的复制品--很抱歉,因为我是新来的,想不出一个办法来“撞”另一个问题,所以我要问一个新问题。但我有一个完全相同的问题,找不到令人满意的解释。你知道吗

为什么来自explained_variance_ratio_TruncatedSVD不像来自PCAexplained_variance_ratio_按降序排列?根据我的经验,似乎列表的第一个元素总是最低的,然后在第二个元素,值跳起来,然后按降序排列。为什么explained_variance_ratio_[0]<;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_

Tags: testgt元素modelcomponentsthisquestionratio
1条回答
网友
1楼 · 发布于 2024-04-19 03:44:56

如果您首先缩放数据,那么我认为解释的方差比将按降序排列:

from sklearn.decomposition import TruncatedSVD
from sklearn.preprocessing import StandardScaler

n_components = 50
X_test = np.random.rand(50,100)

scaler = StandardScaler()
X_test = scaler.fit_transform(X_test)

model = TruncatedSVD(n_components=n_components, algorithm = 'randomized')
model.fit_transform(X_test)
model.explained_variance_ratio_

相关问题 更多 >