def PCA_values(data, centered=True):
n_samples, n_features = data.shape
#By default, the data are centered
if (centered == True):
data_centered = data - mean(data, axis=0)
else:
data_centered = data
#apply the Single Vector Decomposition
U, S, V = linalg.svd(data_centered, full_matrices=False)
# flip eigenvectors' sign to enforce deterministic output
U, V = svd_flip(U, V)
#components
components_ = V
#variance explained by PCs
explained_variance_ratio_ = varianceExplained(S, n_samples)
return(components_, explained_variance_ratio_)
评论列表
文章目录