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