最近我在我所在的城市参加了一个数据科学聚会,讨论了将神经网络与 SVM 连接起来的话题。不幸的是,演示者不得不在演示后立即退出,所以我无法提出一些问题。
我想知道这怎么可能?他谈到使用神经网络进行分类,后来,他使用 SVM 分类器将他的准确性和精度提高了大约 10%。
我将 Keras 用于神经网络,将 SKlearn 用于机器学习的其余部分。
最佳答案
这是完全可能的,而且实际上很常见。您只需选择神经网络层的输出并将其用作特征向量来训练 SVM。通常也会对特征向量进行归一化。
(卷积)神经网络学习到的特征非常强大,可以泛化到不同种类的对象,甚至是完全不同的图像。有关示例,请参阅论文 CNN Features off-the-shelf: an Astounding Baseline for Recognition .
关于实现,你只需要训练一个神经网络,然后选择其中一层(通常是全连接层之前的层或第一个全连接层),在你的数据集上运行神经网络,存储所有特征向量,然后使用不同的库(例如 sklearn)训练 SVM。
关于python - Keras 神经网络和 SKlearn SVM.SVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40401008/