6

我想在 scikit 中使用 RBM。我可以像许多其他分类器一样定义和训练 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 中不存在这两种功能。

4

1 回答 1

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)])

所以将rbm提取的特征传递给LogisticRegression模型。在这里查看一个完整的例子。

于 2015-01-24T02:36:22.570 回答