首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >支持向量机在R分类新实例中的应用

支持向量机在R分类新实例中的应用
EN

Stack Overflow用户
提问于 2018-10-30 04:32:24
回答 2查看 112关注 0票数 0

我使用以下代码构建了我的SVM模型:

代码语言:javascript
复制
X1 = c(2, 2, -2, -2, 1, 1, -1, -1)
X2 = c(2, -2, -2, 2, 1, -1, -1, 1)
Y = c(1, 1, 1, 1, 2, 2, 2, 2)
alldata = data.frame(X1, X2, Y)
svm_model <- svm(alldata$Y ~ . , kernel = "radial", type = "C-classification", alldata)

现在,我想使用值(4,5)对新实例进行分类。我尝试使用以下命令:

代码语言:javascript
复制
predict(svm_model, c(4,5))

但我得到以下错误:

代码语言:javascript
复制
Error in dimnames(x) <- dn : 
  length of 'dimnames' [2] not equal to array extent

我做的下一件事是创建一个小的数据框,如下所示,尝试分类并得到结果:

代码语言:javascript
复制
b1 = c(4)
b2 = c(5)
b = data.frame(b1,b2)
predict(svm_model, b)
   1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> 
   1    1    1    1    2    2    2    2 

我在哪里犯了错?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-30 04:49:04

该错误消息指示c(4,5)包含的信息与您用于培训的alldata中的信息不同。更具体地说,colnames()是不同的。

通过创建新的数据帧:

new_data <- data.frame(X1 = 4, X2 = 5)您将能够获得预期的输出。

票数 2
EN

Stack Overflow用户

发布于 2018-10-30 06:20:09

你需要在你的'b‘数据框中有相同的变量X1和X2来预测。将代码中的b1和b2替换为X1和X2。

代码语言:javascript
复制
X1 = c(4)
X2 = c(5)
b = data.frame(X1,X2)

predict(svm_model, b)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53053387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档