用于不同功能的不同内核-scikit-learn SVM

问题描述 投票:3回答:1

我正在尝试使用sklearn.svm.SVC构建分类器,但我想分别针对特征的不同子集训练内核,以更好地表示特征空间(如here所述)。

我已经阅读了用户指南page,并且我了解我可以创建由各个内核之和构成的内核,或者将预先计算的内核(kernel = 'precomputed')馈入SVC,但是我不了解如何将不同的内核应用于不同的功能?有没有一种方法可以在sklearn中实现呢?

我已经找到了一种在sklearn(https://scikit-learn.org/stable/modules/gaussian_process.html#gp-kernels)中计算内核的方法,因此我可以分别计算每个集合上的内核。但是,一旦我输出了距离矩阵,就不确定如何使用它来训练SVM。

我是否必须创建一个自定义内核,如:

if feature == condition1:
   use kernel X
else:
   use kernel Y

并将其添加到SVM吗?

或者还有其他我可以使用的python库吗?

python-3.x machine-learning scikit-learn svm
1个回答
0
投票

您指的是Multiple Kernel Learning (MKL)的问题。您可以在其中为不同的功能组训练不同的内核。我在多模式情况下使用了此方法,在这种情况下,我需要用于图像和文本的不同内核。

我不确定您是否真的可以通过scikit-learn完成此操作。

例如,在GitHub上提供了一些库:https://github.com/IvanoLauriola/MKLpy 1

希望它可以帮助您实现目标。

© www.soinside.com 2019 - 2024. All rights reserved.