首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同特征的不同内核-科学知识-学习支持向量机

不同特征的不同内核-科学知识-学习支持向量机
EN

Stack Overflow用户
提问于 2020-05-29 16:05:04
回答 2查看 846关注 0票数 3

我正在尝试使用sklearn.svm.SVC构建一个分类器,但我想将内核分别训练在不同的特性子集上,以便更好地表示特征空间(如描述的这里)。

我读过“用户指南”( User Guide 页面 ),我知道我可以创建单个内核之和的内核,或者将预计算内核(kernel = 'precomputed')提供给SVC,但我不明白如何将不同的内核应用于不同的特性?有办法在sklearn中实现这一点吗?

我找到了一种计算sklearn内核(Process.html#gp-内核)的方法,因此我可以在每个集合上分别计算内核。然而,一旦输出距离矩阵,我就不知道如何使用它来训练支持向量机。

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

代码语言:javascript
运行
复制
if feature == condition1:
   use kernel X
else:
   use kernel Y

把它加到支持向量机上?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-29 19:52:51

您指的是Multiple Kernel Learning (MKL)问题。在那里你可以为不同的特征组训练不同的内核。我在一个多模式的例子中使用了这种方法,我想要不同的内核来处理图像和文本。

我不确定你是否真的可以通过科学学习。

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

希望它能帮助你实现你的目标。

票数 2
EN

Stack Overflow用户

发布于 2020-07-02 15:35:01

sklearn中多核学习是可能的。只需指定kernel='precomputed',然后将要使用的内核矩阵传递给fit

假设您的核矩阵是另外两个核矩阵的和。您可以任意计算K1K2,并使用SVC.fit(X=K1 + K2, y=y)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62090144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档