关于R中SVM分类器的查询

Query about SVM classifier in R

我正在处理一个音乐数据集,我必须在其中将音乐数据分类为流派。我有测试和训练数据集。 我已经链接了数据集供您检查 here. 我在 Rstudio 工作

这是我写的代码。我是初学者,不知道自己在做什么。我正在射箭 运行domly。如果您需要更多信息,请告诉我。

使用的库是:-

library("e1071")

代码:-

svm.model <- svm(GENRE ~ ., data = musictraindata, cost = 62.5, gamma = 0.5)

现在我的问题是在 x 参数中放入什么。我从火车数据集中输入了 "GENRE",但它给了我以下错误。

Error in svm.default(x, y, scale = scale, ..., na.action = na.action) : Need numeric dependent variable for regression.

有人请指导我应该做什么。谢谢。

更正后:- 我 运行 带有所述 corrections.I 的代码得到如下 svm.model :-

svm.model

Call:
svm(formula = factor(GENRE) ~ ., data = musictraindata, cost = 62.5, gamma = 0.5, type = "C-classification", 
    tolerance = 0.01)

Parameters:
   SVM-Type:  C-classification 
 SVM-Kernel:  radial 
       cost:  62.5 
      gamma:  0.5 
Number of Support Vectors:  11880

现在我尝试通过将其与测试数据一起使用来创建预测模型。

svm.pred <- predict(svm.model,musictestdata)

当我绘制 svm.pred 时,我得到如下图表,这不太可能。在这里:

我应该如何继续下去?难道我做错了什么 ? 让我知道。

如果没有可重现的例子很难说,但我会确认你的因变量(流派)的 class 是一个因素,并且没有像 NA 那样的任何愚蠢的事情。用 class(musictraindata$GENRE) 检查这个。另外值得注意的是,R 对大小写敏感,因此 "Genre" 和 "GENRE" 有所不同。

您也可以尝试指定您想要 运行 的 SVM 类型,方法是使用 (type = "C-classification") 看看它是否会给您带来更有用的错误?