我想问一下是否有人有想法或示例如何使用libsvm的python绑定在python中使用高维输出(多个)进行支持向量回归?我查看了示例,他们都假设输出是一维的。
答案 0 :(得分:4)
libsvm可能不是执行此任务的最佳工具。
您描述的问题称为多元回归,通常对于回归问题,SVM不一定是最佳选择。
您可以尝试类似套索(http://www.di.ens.fr/~fbach/grouplasso/index.htm - matlab)或稀疏组套索(http://spams-devel.gforge.inria) .fr / - 似乎有一个python接口),它解决了不同类型正则化的多元回归问题。
答案 1 :(得分:3)
支持向量机作为数学框架是根据单个预测变量制定的。因此,实现它们的大多数库都会将其反映为在其API中使用单个目标变量。
您可以为数据中的每个目标维度训练单个SVM模型。
在正面,您可以在群集中训练它们,因为每个模型彼此独立
在负面,子模型将不会共享任何东西,也不会从他们在输入数据结构中单独发现的内容中获益,并且可能需要大量内存来存储模型,因为它们没有共享中间代表
可以在多任务学习设置中设计SVM的变体,以学习一些适用于重复预测多维目标的基于内核的基本中间表示,但这不是在libsvm AFAIK中实现的。如果您想了解更多信息,请访问Google multi task learning SVM。
或者,多层感知器(一种前馈神经网络)可以自然地处理多维结果,因此应该更好地共享跨目标重复使用的数据的中间表示,特别是如果它们足够深。第一层使用自动编码器目标函数以无监督的方式进行预训练。
您可能希望查看http://deeplearning.net/tutorial/,了解各种神经网络架构以及实用工具和示例,以便有效地实施它们。