コード例 #1
0
ファイル: weak_learn.py プロジェクト: psclib/pscgen
    def fit(self, X, Y):
        self.class_labels = np.array(sorted(set(Y)))
        D = KMeans(n_clusters=self.n_atoms, init_size=self.n_atoms*3)
        D.fit(np.vstack(X)[:200000])
        D = D.cluster_centers_
        D = normalize(D)
        self.D_mean = np.mean(D, axis=0)
        self.D = D - self.D_mean
        self.D_idxs = []
        self.clfs = []

        for i in xrange(self.n_nodes):
            idxs = np.random.permutation(self.n_atoms)[:self.n_features]
            idxs = np.random.permutation(len(X[0][0]))[:self.n_features]
            enc_X = []
            for x in X:
                x = normalize(x)
                x = x - self.D_mean
                enc_X.append(bow(np.argmax(np.abs(np.dot(self.D[:, idxs], x.T[idxs, :])), axis=0), self.n_atoms))


            clf = LinearSVC()
            clf.fit(enc_X, Y)
            self.clfs.append(clf)
            self.D_idxs.append(idxs)
コード例 #2
0
ファイル: weak_learn.py プロジェクト: psclib/pscgen
    def predict(self, X):
        predictions = []
        for idxs, clf in zip(self.D_idxs, self.clfs):
            enc_X = []
            for x in X:
                x = normalize(x)
                x = x - self.D_mean
                enc_X.append(bow(np.argmax(np.abs(np.dot(self.D[:, idxs], x.T[idxs, :])), axis=0), self.n_atoms))

            predictions.append(clf.decision_function(enc_X))

        predictions = np.array(predictions)

        return self.class_labels[np.argmax(np.sum(predictions, axis=0), axis=1)]
コード例 #3
0
ファイル: forest_test.py プロジェクト: psclib/pscgen
        run_alpha = alphas
        run_beta = betas
    else:
        run_alpha = alphas[:5]
        run_beta = betas[:5]

    sample_dims = np.linspace(0, ws-1, int(subsample_pct*ws)).astype(int)
    # sample_dims = np.random.permutation(ws)[:int(subsample_pct*ws)]
    X_window = [x[:, sample_dims] for x in X]

    X_Kmeans = np.vstack(X_window)[:KMeans_tr_size]
    num_X = len(np.vstack(X_window))
    D = KMeans(n_clusters=D_atoms, init_size=D_atoms*3)
    D.fit(X_Kmeans)
    D = D.cluster_centers_
    D = normalize(D)
    D_mean = np.mean(D, axis=0)
    D = D - D_mean


    plt_ops, plt_accs = accuracy_test(names, num_l1_node, alphas, betas,
                                      dict_partition, dim_partition, 
                                      X_window, Y, D, D_mean, sss, model,
                                      num_l2_node)
    # plt_ops, plt_accs = candidate_test(names, num_nodes, alphas, betas,
    #                                    dict_partition, dim_partition, X_window,
    #                                    D, D_mean)


    plt_dict[name] = (plt_ops, plt_accs)