支持向量机能否被训练以预测一个标量值(从0到100)而不是二元值?

我在YouTube上观看了关于支持向量机(SVM)的教程。在每个教程中,训练数据都被分成离散的组,通常是两个组(例如X和Y),而不是某个范围内的值(如1到100)。svmtrain函数的文档中对目标Group参数的描述如下:

分组变量,可以是分类、数值或逻辑向量,也可以是字符串的单元向量,或每行代表一个类标签的字符矩阵。Group的每个元素指定Training对应行的组。Group应将Training分为两组。

这里再次提到两组。我的训练数据中,每个观测(行)是一个数字向量,对应于音频文件中某个频率的激活强度。我为每个观测设定了一个目标值,是1到100之间的实数。我希望当一个相似的音频文件在训练数据上测试时,能产生一个相似的目标数值。但据我所知,SVM只能告诉我新音频文件是否与训练的音频文件匹配,而不能告诉我匹配的程度。我的理解有误吗?SVM能否被训练以从一个向量映射到1到100之间的标量,而不仅仅是判断是否属于某个组?

如果可以做到,如何使用svmtrain函数来实现?我是否只需将Group向量的行设置为观测行对应的1到100的数字?

谢谢


回答:

有两种设置或多或少与你的问题相符。

  • 回归问题,你试图预测一个实值,可以使用支持向量回归(SVR)来实现这一点。
  • 排序问题,你只关心一个元素是否比另一个元素引起更强或更弱的反应,可以使用排序支持向量机(RankSVM)来实现这一点。

你也可以将你的问题视为一个简单的多类分类问题(为此使用经典的SVM并应用典型的多类到二类分解),然而,你的类别是有结构的(因为它们有自然的顺序),所以上述方法更适合。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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