我正在研究音乐数据集,其中必须将音乐数据分类为流派。我有测试和训练数据集。我已链接数据集供您在此处检查。我在Rstudio工作
这是我编写的代码。我是一个初学者,不知道我在做什么。我在随机射箭。如果您需要更多信息,请与我们联系。
使用的库是:
library("e1071")
代码 :-
svm.model <- svm(GENRE ~ ., data = musictraindata, cost = 62.5, gamma = 0.5)
现在我的问题是在x参数中放什么。我从火车数据集中输入了“ GENRE”,但它给了我以下错误。
svm.default(x,y,scale = scale,...,na.action = na.action)中的错误:需要数字因变量进行回归。
有人请指导我该怎么做。谢谢。
更正后:-我用上述更正运行了代码。我得到了一个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
,我得到如下图,这是极不可能的。这里是:
这我应该怎么做对?难道我做错了什么 ?让我知道。
很难说,没有可复制的示例,但是我要确认,您的因变量的类别(Genre)是一个因素,并且不会像NA那样愚蠢。使用进行检查class(musictraindata$GENRE)
。同样值得一提的是,R对大小写敏感,因此“ Genre”和“ GENRE”有所不同。
您还可以尝试通过使用指定要运行的SVM的类型,(type = "C-classification")
看看它是否给您带来了更有用的错误?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句