2015-01-24 6 views
4

scikit에서 RBM을 사용하고 싶습니다. 나는 다른 많은 분류 자들처럼 RBM을 정의하고 훈련시킬 수있다.scikit에서 RBM에 대한 예측

from sklearn.neural_network import BernoulliRBM 
clf = BernoulliRBM(random_state=0, verbose=True) 
clf.fit(X_train, y_train) 

그러나 예측할 수있는 기능을 찾을 수 없습니다. 나는 scikit에서 다음 중 하나에 해당하는 것을 찾고 있습니다.

y_score = clf.decision_function(X_test) 
y_score = clf.predict(X_test) 

BernoulliRBM에는 기능이 없습니다.

답변

5

BernoulliRBM은 감독되지 않은 방법이므로 clf.fit(X_train, y_train)을 처리 할 수 ​​없으며 clf.fit(X_train)을 처리 할 수 ​​없습니다. 이것은 주로 분류 자에게 공급 될 수있는 비선형 피쳐 추출에 사용됩니다.

logistic = linear_model.LogisticRegression() 
rbm = BernoulliRBM(random_state=0, verbose=True) 

classifier = Pipeline(steps=[('rbm', rbm), ('logistic', logistic)]) 

따라서 rbm으로 추출한 기능은 LogisticRegression 모델로 전달됩니다. 전체 예제는 here을보십시오.

+0

RBM의 경우 텍스트 분류를위한 이전 단계로 자율 학습을 수행하기 위해 어떤 유형의 벡터 화기가 잘 매치 될 수 있습니까? – tumbleweed

+1

RBM이 비선형 성을 추출했기 때문에 선형 분류기에서는 이론적으로는이 질문이 일반적으로 대답 될 수 있다고 생각하지 않습니다. 매우 데이터 의존적인가. – elyase