def classify(self,X):
        transformed = self.first_pipeline.transform(X)
        transformed = np.concatenate((transformed,[[0]*10]*len(transformed)),axis=1)

        # The inverse of rbm_3 to go from hidden layer to visible layer
        rbm_aux = BernoulliRBM()
        rbm_aux.intercept_hidden_ = self.rbm_3.intercept_visible_
        rbm_aux.intercept_visible_ = self.rbm_3.intercept_hidden_
        rbm_aux.components_ = np.transpose(self.rbm_3.components_)
        results = rbm_aux.transform(self.rbm_3.transform(transformed))
        results = results[:,-10:]
        return np.argmax(results,axis=1)
    def classify(self, X):
        transformed = self.first_pipeline.transform(X)
        transformed = np.concatenate(
            (transformed, [[0] * 10] * len(transformed)), axis=1)

        # The inverse of rbm_3 to go from hidden layer to visible layer
        rbm_aux = BernoulliRBM()
        rbm_aux.intercept_hidden_ = self.rbm_3.intercept_visible_
        rbm_aux.intercept_visible_ = self.rbm_3.intercept_hidden_
        rbm_aux.components_ = np.transpose(self.rbm_3.components_)
        results = rbm_aux.transform(self.rbm_3.transform(transformed))
        results = results[:, -10:]
        return np.argmax(results, axis=1)
Exemple #3
0
def get_likelihood(data, W, vb, hb):
    rbm = BernoulliRBM(n_components=W.shape[1])
    rbm.components_ = W.T
    rbm.intercept_hidden_ = hb
    rbm.intercept_visible_ = vb
    return rbm.score_samples(data).mean()