我想在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中没有任何功能。
答案 0 :(得分: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模型。请查看here以获取完整示例。