支持向量机能否被训练以预测一个标量值(从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

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

发表回复

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