我想在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)
伯努利RBM中不存在这两个函数。
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 模型。请看这里的完整示例。