【发布时间】:2019-06-22 04:30:07
【问题描述】:
我正在尝试将一些旧代码从使用 sklearn 转换为 Keras 实现。由于保持相同的操作方式至关重要,因此我想了解我是否正确执行。
我已经转换了大部分代码,但是我在转换 sklearn.svm SVC 分类器时遇到了问题。这是它现在的样子:
from sklearn.svm import SVC
model = SVC(kernel='linear', probability=True)
model.fit(X, Y_labels)
超级简单,对。但是,我在 Keras 中找不到 SVC 分类器的类比。所以,我试过的是这样的:
from keras.models import Sequential
from keras.layers import Dense
model = Sequential()
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='softmax'))
model.compile(loss='squared_hinge',
optimizer='adadelta',
metrics=['accuracy'])
model.fit(X, Y_labels)
但是,我认为无论如何都是不正确的。请你帮我从 Keras 的 sklearn 中找到 SVC 分类器的替代品吗?
谢谢。
【问题讨论】:
-
您所说的“另类”究竟是什么意思? Keras 专门是一个神经网络框架,它不包含 SVM 功能……
-
是的,它不是开箱即用的,但您可以组成一个模型,作为 sklearn-kit 中的 SVM 损失函数的替代品。这种模型在下面的答案中提出。
-
好吧,我不清楚“替代”的含义,但既然你得到了一个有意义的答案,一切都很好(当你看到大约 2 个问题/月抱怨,比如说,关于 的准确性低回归设置,假设OP确切地知道他/她在说什么开始感觉不那么可靠...... :)
标签: machine-learning keras scikit-learn neural-network svm