コード例 #1
0
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
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
ファイル: pca.py プロジェクト: Young-china/thunder
"""
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")
コード例 #5
0
    def run_pca(self):
        model = PCA(k=self.pca_components).fit(self.data)

        return model
コード例 #6
0
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")
コード例 #7
0
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")
コード例 #8
0
"""

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")