对scikit中RBM的预测

use*_*040 5 python scikit-learn rbm

我想在scikit中使用RBM.我可以像许多其他分类器一样定义和训练RBM.

from sklearn.neural_network import BernoulliRBM
clf = BernoulliRBM(random_state=0, verbose=True)
clf.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到一个让我成为预测的功能.我正在寻找scikit中以下之一的等效物.

y_score = clf.decision_function(X_test)
y_score = clf.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

BernoulliRBM中没有这两种功能.

ely*_*ase 9

该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)])
Run Code Online (Sandbox Code Playgroud)

因此,rbm提取的特征将传递给LogisticRegression模型.看看这里为一个完整的例子.