示例#1
0
文件: ica.py 项目: edwardt/thunder
from thunder import ThunderContext, ICA, export


if __name__ == "__main__":
    parser = optparse.OptionParser(description="do independent components analysis",
                                   usage="%prog datafile outputdir k c [options]")
    parser.add_option("--svdmethod", choices=("direct", "em"), default="direct")
    parser.add_option("--maxiter", type=float, default=100)
    parser.add_option("--tol", type=float, default=0.000001)
    parser.add_option("--seed", type=int, default=0)

    opts, args = parser.parse_args()
    try:
        datafile = args[0]
        outputdir = args[1]
        k = int(args[2])
        c = int(args[3])
    except IndexError:
        parser.print_usage()
        raise Exception("too few arguments")

    tsc = ThunderContext.start(appName="ica")

    data = tsc.loadSeries(datafile).cache()
    model = ICA(k=k, c=c, svdmethod=opts.svdmethod, maxiter=opts.maxiter, tol=opts.tol, seed=opts.seed)
    result = model.fit(data)

    outputdir += "-ica"
    export(result.a, outputdir, "a", "matlab")
    export(result.sigs, outputdir, "sigs", "matlab")
示例#2
0
"""
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")
示例#3
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")
示例#4
0
    parser = argparse.ArgumentParser(
        description="do independent components analysis")
    parser.add_argument("datafile", type=str)
    parser.add_argument("outputdir", type=str)
    parser.add_argument("k", type=int)
    parser.add_argument("c", type=int)
    parser.add_argument("--svdmethod",
                        choices=("direct", "em"),
                        default="direct",
                        required=False)
    parser.add_argument("--maxiter", type=float, default=100, required=False)
    parser.add_argument("--tol", type=float, default=0.000001, required=False)
    parser.add_argument("--seed", type=int, default=0, required=False)

    args = parser.parse_args()

    tsc = ThunderContext.start(appName="ica")

    data = tsc.loadSeries(args.datafile).cache()
    model = ICA(k=args.k,
                c=args.c,
                svdmethod=args.svdmethod,
                maxiter=args.maxiter,
                tol=args.tol,
                seed=args.seed)
    result = model.fit(data)

    outputdir = args.outputdir + "-ica"
    export(result.a, outputdir, "a", "matlab")
    export(result.sigs, outputdir, "sigs", "matlab")
示例#5
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")
示例#6
0
"""
Example standalone app for kmeans clustering
"""

import argparse
from thunder import ThunderContext, KMeans, export

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="do kmeans clustering")
    parser.add_argument("datafile", type=str)
    parser.add_argument("outputdir", type=str)
    parser.add_argument("k", type=int)
    parser.add_argument("--maxiter", type=float, default=20, required=False)
    parser.add_argument("--tol", type=float, default=0.001, required=False)

    args = parser.parse_args()

    tsc = ThunderContext.start(appName="kmeans")

    data = tsc.loadSeries(args.datafile).cache()
    model = KMeans(k=args.k, maxIterations=args.maxiter).fit(data)
    labels = model.predict(data)

    outputdir = args.outputdir + "-kmeans"
    export(model.centers, outputdir, "centers", "matlab")
    export(labels, outputdir, "labels", "matlab")
示例#7
0
"""
Example standalone app for mass-unvariate regression combined with PCA
"""

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")
示例#8
0
from thunder import ThunderContext, NMF, export


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="do non-negative matrix factorization")
    parser.add_argument("datafile", type=str)
    parser.add_argument("outputdir", type=str)
    parser.add_argument("k", type=int)
    parser.add_argument("--nmfmethod", choices="als", default="als", required=False)
    parser.add_argument("--maxiter", type=float, default=20, required=False)
    parser.add_argument("--tol", type=float, default=0.001, required=False)
    parser.add_argument("--w_hist", type=bool, default=False, required=False)
    parser.add_argument("--recon_hist", type=bool, default=False, required=False)

    args = parser.parse_args()

    tsc = ThunderContext.start(appName="nmf")

    data = tsc.loadSeries(args.datafile).cache()
    nmf = NMF(k=args.k, method=args.nmfmethod, maxiter=args.maxiter, tol=args.tol, w_hist=args.w_hist,
              recon_hist=args.recon_hist)
    nmf.fit(data)

    outputdir = args.outputdir + "-nmf"
    export(nmf.w, outputdir, "w", "matlab")
    export(nmf.h, outputdir, "h", "matlab")
    if args.w_hist:
        export(nmf.w_convergence, outputdir, "w_convergence", "matlab")
    if args.recon_hist:
        export(nmf.recon_err, outputdir, "rec_err", "matlab")
示例#9
0
"""
Example standalone app for mass-univariate regression
"""

import argparse
from thunder import ThunderContext, RegressionModel, 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")

    args = parser.parse_args()

    tsc = ThunderContext.start(appName="regress")

    data = tsc.loadText(args.datafile, args.preprocess)
    result = RegressionModel.load(args.modelfile, args.regressmode).fit(data)

    outputdir = args.outputdir + "-regress"
    export(result.select('stats'), outputdir, "stats", "matlab")
    export(result.select('betas'), outputdir, "betas", "matlab")
示例#10
0
"""
Example standalone app for calculating series statistics
"""

import optparse
from thunder import ThunderContext, export

if __name__ == "__main__":
    parser = optparse.OptionParser(
        description="compute summary statistics on time series data",
        usage="%prog datafile outputdir mode [options]")
    parser.add_option("--preprocess", action="store_true", default=False)

    opts, args = parser.parse_args()
    try:
        datafile = args[0]
        outputdir = args[1]
        mode = args[2]
    except IndexError:
        parser.print_usage()
        raise Exception("too few arguments")

    tsc = ThunderContext.start(appName="stats")

    data = tsc.loadSeries(datafile).cache()
    vals = data.seriesStat(mode)

    outputdir += "-stats"
    export(vals, outputdir, "stats_" + mode, "matlab")
示例#11
0
文件: stats.py 项目: edwardt/thunder
"""
Example standalone app for calculating series statistics
"""

import optparse
from thunder import ThunderContext, export


if __name__ == "__main__":
    parser = optparse.OptionParser(description="compute summary statistics on time series data",
                                   usage="%prog datafile outputdir mode [options]")
    parser.add_option("--preprocess", action="store_true", default=False)

    opts, args = parser.parse_args()
    try:
        datafile = args[0]
        outputdir = args[1]
        mode = args[2]
    except IndexError:
        parser.print_usage()
        raise Exception("too few arguments")

    tsc = ThunderContext.start(appName="stats")

    data = tsc.loadSeries(datafile).cache()
    vals = data.seriesStat(mode)

    outputdir += "-stats"
    export(vals, outputdir, "stats_" + mode, "matlab")