使用Python的libsvm进行高维输出支持向量回归

我想询问是否有人知道如何使用Python的libsvm绑定来进行高维输出(多于一个维度)的支持向量回归?我查看了示例,但它们都假设输出是一维的。


回答:

支持向量机作为一个数学框架,是基于单一预测变量来构建的。因此,大多数实现它们的库在API中也会反映这一点,即使用单一目标变量。

你可以为数据中的每个目标维度训练一个单独的SVM模型。

  • 优点是,你可以在集群上并行训练这些模型,因为每个模型都是独立的

  • 缺点是,子模型之间没有任何共享,也无法从它们各自在输入数据结构中发现的内容中受益,并且可能需要大量内存来存储模型,因为它们没有共享的中间表示

在多任务学习设置中,可以设计SVM的变体,以学习一些基于核的中间表示,适合重用来预测多维目标,但据我所知,这在libsvm中尚未实现。如果你想了解更多,可以谷歌搜索多任务学习SVM

另一种选择是多层感知器(一种前馈神经网络),它们天然能够处理多维输出,因此在共享数据的中间表示方面应该更有效,特别是如果它们足够深,并且第一层通过使用自编码器目标函数进行无监督预训练的话。

你可以查看http://deeplearning.net/tutorial/,那里有关于各种神经网络架构的良好介绍,以及实施它们的实用工具和示例。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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