示例#1
0
    def calcRegularizedGrangerCausality(self, pcaContribution, eta_xtkm,
                                        eta_xt, eta_ytkm):
        if (len(self.Xt) == 0):
            print "サンプルがありません"
            return False
        pca = PCAApplier(pcaContribution)
        import copy
        self.Xt = copy.deepcopy(pca.applyPCA(self.Xt))
        self.Xtkm = copy.deepcopy(pca.applyPCA(self.Xtkm))
        self.Ytkm = copy.deepcopy(pca.applyPCA(self.Ytkm))
        #        self.Xt   = copy.deepcopy(pca.applyKernelPCA(self.Xt))
        #        self.Xtkm = copy.deepcopy(pca.applyKernelPCA(self.Xtkm))
        #        self.Ytkm = copy.deepcopy(pca.applyKernelPCA(self.Ytkm))

        eigen_values = self.calcEquation21(eta_xtkm, eta_xt, eta_ytkm)
        eigen_value = max(eigen_values)

        if eigen_value == None:
            print "固有値が計算出来ません"
            return False

        return (np.log2(1 / (1 - eigen_value)) * 0.5).real
    minFrames = min(loaderX.getNumFrames(), loaderY.getNumFrames())
    loaderX.adjustNumFrames(minFrames)
    loaderY.adjustNumFrames(minFrames)



    frames_embeddedVecXt   = loaderX.generateEmbeddedVec(           1,         0, numDeleteHeadFrames = embeddedTime+delayTime-1)
    frames_embeddedVecXtkm = loaderX.generateEmbeddedVec(embeddedTime, delayTime, numSamplingFrames = numSamplingFrames)
    frames_embeddedVecYtkm = loaderY.generateEmbeddedVec(embeddedTime, delayTime, numSamplingFrames = numSamplingFrames)

    from itertools import izip
    import numpy as np
    embedded_vector = [np.r_[ np.r_[vector0, vectorX], vectorY] for vector0, vectorX, vectorY in izip(frames_embeddedVecXt, frames_embeddedVecXtkm, frames_embeddedVecYtkm)]

    pca_applier_for_classify = PCAApplier(0.9)
    frames_axes_pcaedDataMat = pca_applier_for_classify.applyPCA(embedded_vector)

    from sklearn.cluster import KMeans
    kmeans_model = KMeans(n_clusters=numCluster).fit(frames_axes_pcaedDataMat)
    frames_labels = kmeans_model.labels_


    import sys, time
    import cPickle as pickle

    pickle_dic = {"datafileX":datafileX,
                  "datafileY":datafileY,
#                  "serial_results":serial_results,
                  "serial_results":[frames_labels],
                  "embeddedTime":embeddedTime,
示例#3
0
    frames_embeddedVecYtkm = loaderY.generateEmbeddedVec(embeddedTime, delayTime, numSamplingFrames=numSamplingFrames)
    data = [[np.matrix(embeddedVecXt).T, np.matrix(embeddedVecYtkm).T, np.matrix(embeddedVecXtkm).T]
            for i, [embeddedVecXt, embeddedVecYtkm, embeddedVecXtkm] in enumerate(izip(frames_embeddedVecXt, frames_embeddedVecYtkm, frames_embeddedVecXtkm))]
    pcaed_data = get_pcaedData(data, 2)
    ##

    frames_positions_x = loaderX.GenerateDataForMovie(embeddedTime + delayTime - 1)
    frames_positions_y = loaderY.GenerateDataForMovie(embeddedTime + delayTime - 1)
    #############

    frames_labels = serial_results[-1]
    labels_frames_embeddedVecXt, labels_frames_embeddedVecXtkm, labels_frames_embeddedVecYtkm = SplitData(data, frames_labels)

    from PCAApplier import PCAApplier
    pcaContribution = 0.99
    pca = PCAApplier(pcaContribution)
    labels_pcaed_Xt = []
    labels_pcaed_Xtkm = []
    labels_pcaed_Ytkm = []
    for i in range(numCluster):
        labels_pcaed_Xt.append(pca.applyPCA(labels_frames_embeddedVecXt[i]))
        labels_pcaed_Xtkm.append(pca.applyPCA(labels_frames_embeddedVecXtkm[i]))
        labels_pcaed_Ytkm.append(pca.applyPCA(labels_frames_embeddedVecYtkm[i]))

    # calc Causalities
    from CausalityCalculator import CausalityCalculator
#    from SurrogatingTester import SurrogatingTester

#    num_try = 100
#    tester = SurrogatingTester(num_try, numCluster, labels_frames_embeddedVecXt, labels_frames_embeddedVecXtkm, labels_frames_embeddedVecYtkm)