Example #1
0
def manifold_warping_nonlinear(X,
                               Y,
                               num_dims,
                               Wx,
                               Wy,
                               mu=0.9,
                               metric=SquaredL2,
                               threshold=0.01,
                               max_iters=100,
                               eps=1e-8):
    projecting_aligner = lambda A, B, corr: manifold_nonlinear(
        A, B, corr, num_dims, Wx, Wy, mu=mu, eps=eps)
    correlating_aligner = lambda A, B: dtw(A, B, metric=metric)
    return alternating_alignments_nonlinear(X, Y, projecting_aligner,
                                            correlating_aligner, threshold,
                                            max_iters)
Example #2
0
    lin_aligners = (
        ('no alignment', lambda: TrivialAlignment(X, Y)),
        ('affine', lambda: Affine(X, Y, corr, d)),
        ('procrustes', lambda: Procrustes(X, Y, corr, d)),
        ('cca', lambda: CCA(X, Y, corr, d)),
        ('cca_v2', lambda: CCAv2(X, Y, d)),
        ('linear manifold', lambda: ManifoldLinear(X, Y, corr, d, Wx, Wy)),
        ('ctw', lambda: ctw(X, Y, d)[1]),
        ('manifold warping',
         lambda: manifold_warping_linear(X, Y, d, Wx, Wy)[1]),
    )

    other_aligners = (
        ('dtw', lambda: (X, dtw(X, Y).warp(X))),
        ('nonlinear manifold aln',
         lambda: manifold_nonlinear(X, Y, corr, d, Wx, Wy)),
        ('nonlinear manifold warp',
         lambda: manifold_warping_nonlinear(X, Y, d, Wx, Wy)[1:]),
    )

    for name, aln in lin_aligners:
        pyplot.figure()
        with Timer(name):
            Xnew, Ynew = aln().project(X, Y)
        print ' sum sq. error =', pairwise_error(Xnew, Ynew, metric=SquaredL2)
        show_alignment(Xnew, Ynew, name)

    for name, aln in other_aligners:
        pyplot.figure()
        with Timer(name):
            Xnew, Ynew = aln()
Example #3
0
  Wy = neighbor_graph(Y,k=5)

  lin_aligners = (
    ('no alignment',     lambda: TrivialAlignment(X,Y)),
    ('affine',           lambda: Affine(X,Y,corr,d)),
    ('procrustes',       lambda: Procrustes(X,Y,corr,d)),
    ('cca',              lambda: CCA(X,Y,corr,d)),
    ('cca_v2',           lambda: CCAv2(X,Y,d)),
    ('linear manifold',  lambda: ManifoldLinear(X,Y,corr,d,Wx,Wy)),
    ('ctw',              lambda: ctw(X,Y,d)[1]),
    ('manifold warping', lambda: manifold_warping_linear(X,Y,d,Wx,Wy)[1]),
  )

  other_aligners = (
    ('dtw', lambda: (X, dtw(X,Y).warp(X))),
    ('nonlinear manifold aln', lambda: manifold_nonlinear(X,Y,corr,d,Wx,Wy)),
    ('nonlinear manifold warp', lambda: manifold_warping_nonlinear(X,Y,d,Wx,Wy)[1:]),
  )

  pyplot.ion()

  for name, aln in lin_aligners:
    pyplot.figure()
    with Timer(name):
      Xnew,Ynew = aln().project(X, Y)
    print ' sum sq. error =', pairwise_error(Xnew, Ynew, metric=SquaredL2)
    show_alignment(Xnew,Ynew,name)
    pyplot.draw()

  for name, aln in other_aligners:
    pyplot.figure()
Example #4
0
def manifold_warping_nonlinear(X,Y,num_dims,Wx,Wy,mu=0.9,metric=SquaredL2,threshold=0.01,max_iters=100,eps=1e-8):
  projecting_aligner = lambda A,B,corr: manifold_nonlinear(A,B,corr,num_dims,Wx,Wy,mu=mu,eps=eps)
  correlating_aligner = lambda A,B: dtw(A,B,metric=metric)
  return alternating_alignments_nonlinear(X,Y,projecting_aligner,correlating_aligner,threshold,max_iters)
Example #5
0
    ('no alignment', lambda: TrivialAlignment(X_normalized, Y_normalized, d)),
    # ('affine',           lambda: Affine(X,Y,corr,d)),
    # ('procrustes',       lambda: Procrustes(X,Y,corr,d)),
    ('cca', lambda: CCA(X_normalized, Y_normalized, corr, d)),
    # ('cca_v2',           lambda: CCAv2(X,Y,d)),
    ('linear manifold',
     lambda: ManifoldLinear(X_normalized, Y_normalized, corr, d, Wx, Wy)),
    ('ctw', lambda: ctw(X_normalized, Y_normalized, d)[1]),
    ('manifold warping',
     lambda: manifold_warping_linear(X_normalized, Y_normalized, d, Wx, Wy)[1]
     ),
)

other_aligners = (
    ('nonlinear manifold aln',
     lambda: manifold_nonlinear(X_normalized, Y_normalized, corr, d, Wx, Wy)),
    ('nonlinear manifold warp', lambda: manifold_warping_nonlinear(
        X_normalized, Y_normalized, d, Wx, Wy)[1:]),
    ('manifold warping two-step', lambda: manifold_warping_twostep(
        X_normalized, Y_normalized, d, Wx, Wy)[1:]),
)

# heatmin = 1
# heatmax = 0

metric = SquaredL2
# disMat = np.empty((0,944784), float)
# heatList = []
W = []

# pp = PdfPages('manifold_17695.pdf')