TruncatedSVD中的解释方差

时间:2018-08-30 16:33:26

标签: python scikit-learn pca svd lsa

当我试图了解LSA时,发现无法使用SVD从TruncatedSVD复制结果。为什么这不起作用。

谢谢您的帮助。

import pandas as pd
import numpy as np
from sklearn.decomposition import TruncatedSVD

# Iris data
df = pd.read_csv(filepath_or_buffer='https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None, sep=',')
df.columns=['sepal_len', 'sepal_wid', 'petal_len', 'petal_wid', 'class']
df.dropna(how="all", inplace=True)
X = df.ix[:,0:4].values

# TruncatedSVD
lsa = TruncatedSVD(n_components=3)
X_proj = lsa.fit_transform(X)
#print(lsa.singular_values_)                  <------- error
print('Components:\n', lsa.components_)
print('Explained variance:\n', lsa.explained_variance_, '\n')

# SVD
u, s, vt = np.linalg.svd(X)
print('Components:\n', vt)
exp_var = (s**2) / (X.shape[0]-1)
print('Explained variance:\n', exp_var)

0 个答案:

没有答案