不同特征的不同内核 – scikit-learn SVM

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

我已经阅读了用户指南的页面,我了解到我可以创建由单个内核相加的内核,或者向SVC提供预计算的内核(kernel = 'precomputed'),但我不明白如何将不同的内核应用于不同的特征?在sklearn中有没有办法实现这个?

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

我是否需要创建一个自定义内核,如下所示:

if feature == condition1:   use kernel Xelse:   use kernel Y

并将其添加到SVM中?

或者是否有其他Python库可以用于此目的?


回答:

你提到的这个问题属于多内核学习(MKL)。你可以为不同的特征组训练不同的内核。我在一个多模态案例中使用过这种方法,那时我希望为图像和文本使用不同的内核。

我不确定你是否真的可以通过scikit-learn来实现这一点。

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注