예제 #1
0
    def transform(self, X, y):

        null_dist = []

        for i in range(self.n_permutation):
            if self.print_progress:
                progress(i, self.n_permutation)
            y_perm = self.shuffle(y)
            value = self.analysis.transform(X, y_perm)

            null_dist.append(value)

        null_dist = np.array(null_dist)
        self.null_dist = null_dist
예제 #2
0
    def run(self, pipeline):
        results = []

        for conf in self:
            progress(self.i, self.n)
            print str(np.float(self.i)/self.n)
            pipeline.update_configuration(**conf)
            res = pipeline.run()
            
            results.append([conf, res])
        
        self.results = results

        return results
예제 #3
0
    def run(self, X, y):

        null_dist = []

        for i in range(self.n_permutation):
            if self.print_progress:
                progress(i, self.n_permutation)
            y_perm = self.shuffle(y)
            value = self.analysis.run(X, y_perm)
        
            null_dist.append(value)
        
        null_dist = np.array(null_dist)
        self.null_dist = null_dist
예제 #4
0
 def transform(self, X, y):
     """
     Runs permutations shuffiling stuff indicated in dimension variable
     """
     
     self.null_dist = []
     
     for i in tqdm(range(self.n_permutation), desc="permutation"):
         
         X_, y_ = self.shuffle(X, y)
         permut_value = self.analysis.transform(X_, y_)
         self.null_dist.append(permut_value)
         progress(i, self.n_permutation, suffix='')
         
     self.null_dist = np.array(self.null_dist)
     return self.null_dist
예제 #5
0
 def run(self, X, y):
     """
     The output is a vector r x n where r is the number
     of repetitions of the splitting method
     """
     
     cv = self.cross_validation
     
     mse_ = []
     set_ = []
     weights_ = []
     samples_ = []
     i = 0
     n = cv.n_iter
     for train_index, test_index in cv:           
         i += 1
         progress(i, n, suffix=' -- regression')
         X_train = X[train_index]
         y_train = y[train_index]
         
         # Feature selection
         self.feature_selection.run(X_train, y_train).select_first(80)
         fset_ = self.feature_selection.ranking
         X_train = X_train[:, fset_]
         
         
         X_test = X[test_index][:,fset_]
         #print X_test.shape
         
         # We suppose only scikit-learn fit algorithms are passed!
         y_predict = self.learner.fit(X_train, y_train).predict(X_test)
         
         errors = []
         for error_ in self.error_fx:
             err_ = error_(y[test_index], y_predict)
             errors.append(err_)
     
         mse_.append(errors)
         set_.append(fset_)
         weights_.append(self.learner.coef_)
         samples_.append(train_index)
     
     self.result = [mse_, set_, weights_, samples_]
     
     return self.result