Exemplo n.º 1
0
def compute_mat(data, sigma, t, verbose=True):
    if verbose:
        n = len(data)
        m_0 = np.zeros((n,n))
        for i in range(n):
            print(str( (100. * i) / n ) + '%')
            for j in range(n):
                m_0[i,j] = np.exp( - ga.tga_dissimilarity(data[i], data[j], 2*sigma, t) )
    else:
        m_0 = np.array([[np.exp( - ga.tga_dissimilarity(d_1, d_2, 2*sigma, t) )
                         for d_1 in data]
                        for d_2 in data])
    return m_0
Exemplo n.º 2
0
Arquivo: k.py Projeto: hemnf/ga
 def _GA(self, v1, v2):
     sq1 = v1.reshape(1, len(v1)).astype('double')
     sq2 = v2.reshape(1, len(v2)).astype('double')
     myv = ga.tga_dissimilarity(sq1, sq2, self.sig, 0)
     myv2 = np.exp(-myv)
     sim = 1 - myv2
     return sim
Exemplo n.º 3
0
def TGAKernelXY(X, Y, sigma=0.1, triangular=10):

    N = np.shape(X)[0]
    M = np.shape(Y)[0]

    KSeq = np.zeros((N, M))

    for row1ind in range(N):
        for row2ind in range(M):
            val = ga.tga_dissimilarity(X[row1ind].T.copy(order='C'),
                                       Y[row2ind].T.copy(order='C'), sigma,
                                       triangular)
            # KSeq[row1ind,row2ind]=val
            KSeq[row1ind, row2ind] = np.exp(-val)

    return KSeq
Exemplo n.º 4
0
def test(d=10, T1=100, T2=120):
  np.random.seed(1)
  # generate two random time series of dimension d and duration T1, resp. T2
  seq1 = np.random.rand(T1, d)
  seq2 = np.random.rand(T2, d)
  # define the sigma parameter
  sigma = 0.5*(T1+T2)/2*np.sqrt((T1+T2)/2)
  # compute the global alignment kernel value for different triangular parameters
  diff_t = np.abs(T1-T2)
  Ts = sorted(set([0, 1, diff_t/2, diff_t, diff_t+1, diff_t*3/2, diff_t*2]))
  for triangular in Ts:
    val = ga.tga_dissimilarity(seq1, seq2, sigma, triangular)
    kval = np.exp(-val)
    if 0 < triangular <= diff_t:
      # for 0 < triangular <= diff_t, exp(-tga_d) == 0
      assert kval == 0
    print "T=%d \t exp(-tga_d)=%0.5f" % (triangular, kval)
    def compare(artists):
        seq1=artists[0]["event_sequence_with_0"]
        seq2=artists[1]["event_sequence_with_0"]
        T1=makeArray(seq1) 
        T2=makeArray(seq2)

        # len_diff=max(len(seq1),len(seq2))-min(len(seq1),len(seq2))

        # S1=makeArray(seq1 if len(seq1)>=len(seq2) else seq1+range(len_diff))
        # S2=makeArray(seq2 if len(seq2)>=len(seq1) else seq2+range(len_diff)) 
        # print S1
        # print S2
        # define the sigma parameter
        sigma = 10*(len(seq1)+len(seq2))/2 * np.sqrt((len(seq1)+len(seq2))/2)
        # compute the global alignment kernel value for different triangular parameters
        val = ga.tga_dissimilarity(T1, T2, sigma, 0)
        kval = np.exp(-val)
        return kval
Exemplo n.º 6
0
def test(d=10, T1=100, T2=120):
    np.random.seed(1)
    # generate two random time series of dimension d and duration T1, resp. T2
    seq1 = np.random.rand(T1, d)
    seq2 = np.random.rand(T2, d)
    # define the sigma parameter
    sigma = 0.5 * (T1 + T2) / 2 * np.sqrt((T1 + T2) / 2)
    # compute the global alignment kernel value for different triangular parameters
    diff_t = np.abs(T1 - T2)
    Ts = sorted(
        set([0, 1, diff_t / 2, diff_t, diff_t + 1, diff_t * 3 / 2,
             diff_t * 2]))
    for triangular in Ts:
        val = ga.tga_dissimilarity(seq1, seq2, sigma, triangular)
        kval = np.exp(-val)
        if 0 < triangular <= diff_t:
            # for 0 < triangular <= diff_t, exp(-tga_d) == 0
            assert kval == 0
        print "T=%d \t exp(-tga_d)=%0.5f" % (triangular, kval)
Exemplo n.º 7
0
    def compare(artists):
        seq1 = artists[0]["event_sequence_with_0"]
        seq2 = artists[1]["event_sequence_with_0"]
        T1 = makeArray(seq1)
        T2 = makeArray(seq2)

        # len_diff=max(len(seq1),len(seq2))-min(len(seq1),len(seq2))

        # S1=makeArray(seq1 if len(seq1)>=len(seq2) else seq1+range(len_diff))
        # S2=makeArray(seq2 if len(seq2)>=len(seq1) else seq2+range(len_diff))
        # print S1
        # print S2
        # define the sigma parameter
        sigma = 10 * (len(seq1) + len(seq2)) / 2 * np.sqrt(
            (len(seq1) + len(seq2)) / 2)
        # compute the global alignment kernel value for different triangular parameters
        val = ga.tga_dissimilarity(T1, T2, sigma, 0)
        kval = np.exp(-val)
        return kval