Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions tensorpack/decomposition.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numpy as np
import pandas as pd
from .cmtf import perform_CP, calcR2X
from statsmodels.multivariate.pca import PCA
from sklearn.decomposition import TruncatedSVD

class Decomposition():
def __init__(self, data, max_rr=6):
Expand All @@ -18,8 +18,11 @@ def perform_tfac(self):
def perform_PCA(self, flattenon=0):
dataShape = self.data.shape
flatData = np.reshape(np.moveaxis(self.data, flattenon, 0), (dataShape[flattenon], -1))
self.PCA = PCA(flatData, ncomp=max(self.rrs), missing='fill-em', standardize=False, demean=False, normalize=False)
recon = [self.PCA.scores[:, :rr] @ self.PCA.loadings.T[:rr, :] for rr in self.rrs]

tsvd = TruncatedSVD(n_components=max(self.rrs))
scores = tsvd.fit_transform(flatData)
loadings = tsvd.components_
recon = [scores[:, :rr] @ loadings[:rr, :] for rr in self.rrs]
self.PCAR2X = [calcR2X(c, mIn = flatData) for c in recon]
self.sizePCA = [sum(flatData.shape) * rr for rr in self.rrs]

Expand Down