def run_pca(data, pca_components, required_pcs): model = PCA(k=pca_components).fit(data) imgs = model.scores.pack() if required_pcs == 0: new_imgs = imgs[1:, :, :] else: new_imgs = imgs[required_pcs, :, :, :] return model, imgs, new_imgs
def run_pca(self): """ Run PCA based on data and pca components given during function initialization RETURN: ------ model : PCA model containing components. scores and latency """ model = PCA(k=self.pca_components_index).fit(self.data) return model
def run_pca(self, required_pcs): model = PCA(k=self.pca_components).fit(self.data) imgs = model.scores.pack() if required_pcs == 0: new_imgs = imgs else: if len(imgs.shape) == 3: new_imgs = imgs[required_pcs, :, :] else: new_imgs = imgs[required_pcs, :, :, :] return model, new_imgs
""" Example standalone app for principal component analysis """ import argparse from thunder import ThunderContext, PCA, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="do principal components analysis") parser.add_argument("datafile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("k", type=int) parser.add_argument("--svdmethod", choices=("direct", "em"), default="direct", required=False) args = parser.parse_args() tsc = ThunderContext.start(appName="pca") data = tsc.loadSeries(args.datafile).cache() model = PCA(args.k, args.svdmethod) model.fit(data) outputdir = args.outputdir + "-pca" export(model.comps, outputdir, "comps", "matlab") export(model.latent, outputdir, "latent", "matlab") export(model.scores, outputdir, "scores", "matlab")
def run_pca(self): model = PCA(k=self.pca_components).fit(self.data) return model
if __name__ == "__main__": parser = optparse.OptionParser( description="fit a regression model", usage="%prog datafile modelfile outputdir [options]") parser.add_option("--regressmode", choices=("mean", "linear", "bilinear"), help="form of regression") parser.add_option("--k", type=int, default=2) opts, args = parser.parse_args() try: datafile = args[0] modelfile = args[1] outputdir = args[2] except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="regresswithpca") data = tsc.loadSeries(datafile) model = RegressionModel.load(modelfile, opts.regressmode) # do regression betas, stats, resid = model.fit(data) pca = PCA(opts.k).fit(betas) # do PCA traj = model.fit(data, pca.comps) # get trajectories outputdir += "-regress" export(pca.comps, outputdir, "comps", "matlab") export(pca.latent, outputdir, "latent", "matlab") export(pca.scores, outputdir, "scores", "matlab") export(traj, outputdir, "traj", "matlab")
import optparse from thunder import ThunderContext, PCA, export if __name__ == "__main__": parser = optparse.OptionParser( description="do principal components analysis", usage="%prog datafile outputdir k [options]") parser.add_option("--svdmethod", choices=("direct", "em"), default="direct") opts, args = parser.parse_args() try: datafile = args[0] outputdir = args[1] k = int(args[2]) except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="pca") data = tsc.loadSeries(datafile).cache() model = PCA(k, opts.svdmethod) model.fit(data) outputdir += "-pca" export(model.comps, outputdir, "comps", "matlab") export(model.latent, outputdir, "latent", "matlab") export(model.scores, outputdir, "scores", "matlab")
""" import argparse from thunder import ThunderContext, RegressionModel, PCA, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="fit a regression model") parser.add_argument("datafile", type=str) parser.add_argument("modelfile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("regressmode", choices=("mean", "linear", "bilinear"), help="form of regression") parser.add_argument("--k", type=int, default=2) args = parser.parse_args() tsc = ThunderContext.start(appName="regresswithpca") data = tsc.loadSeries(args.datafile) model = RegressionModel.load(args.modelfile, args.regressmode) # do regression betas, stats, resid = model.fit(data) pca = PCA(args.k).fit(betas) # do PCA traj = model.fit(data, pca.comps) # get trajectories outputdir = args.outputdir + "-regress" export(pca.comps, outputdir, "comps", "matlab") export(pca.latent, outputdir, "latent", "matlab") export(pca.scores, outputdir, "scores", "matlab") export(traj, outputdir, "traj", "matlab")