关于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")
看看它是否会给您带来更有用的错误?
我正在处理一个音乐数据集,我必须在其中将音乐数据分类为流派。我有测试和训练数据集。 我已经链接了数据集供您检查 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")
看看它是否会给您带来更有用的错误?