这个问题基本上是this question的重复-抱歉,因为我是新来的,还想不办法“撞”另一个问题,所以我要问一个新问题。但是我也有同样的问题,找不到令人满意的解释。
为什么explained_variance_ratio_
中的TruncatedSVD
不像PCA
中那样降序排列?根据我的经验,列表的第一个元素似乎总是最低的,然后在第二个元素中,该值跳升,然后从那里降序排列。为什么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_
答案 0 :(得分:0)
如果您首先缩放数据,那么我认为解释的方差比率将以降序排列:
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_