首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公式中的错误和R中没有数据参数

公式中的错误和R中没有数据参数
EN

Stack Overflow用户
提问于 2021-04-28 23:58:35
回答 1查看 73关注 0票数 0

我在用带有多项式内核的sim编写代码。代码如下。

代码语言:javascript
复制
library(ISLR)
library(e1071)
library(randomForest)
library(class)
library(ggplot2)
library(GGally)

train = subset(wifiLocDat, Loc3 == TRUE)
test  = subset(wifiLocDat, Loc3 == FALSE)
set.seed(4343)
tune.out <- tune(svm, wifiLocDat$Loc3~wifiLocDat$WiFi1 + wifiLocDat$WiFi2 + wifiLocDat$WiFi3 + wifiLocDat$WiFi4 + wifiLocDat$WiFi5 + wifiLocDat$WiFi6 + wifiLocDat$WiFi7, data=wifiLocDat,       kernel="polynomial", ranges=list(degree=c(1,2,3,4,5,6)))
summary(tune.out)
svmPoly <- svm(Train$Loc3~., data=Train, kernel="polynomial",coef0=1,degree = 3)

(WiFi1= c(-64L,-68L,-63L,-61L,-63L,-64L,-65L,-61L,-65L,-65L,-62L,-67L,-65L,-63L,-66L,-61L,-67L,-63L,-60L,-60L,-62L),WiFi2 = c(-56L,-57L,-60L,-60L,-65L,-55L,-61L,-63l),-60L,-60L,-61L,-59L,-57L,-60L,-59L,-60L,-56L,-54L,-58L,-59L),WiFi3 = c(-61L,-61L,-60L,-60L,-60L,-63L,-65L,-58L,-59L,-66L,-62L,-61L,-61L,-65L,-65L,-59L,-60L,-59L,-60L,-63L),WiFi4 = c(-66L,-65L,-67L,-62L,-63L,-66L,-67L,-66L,-63L,-68L,-67L,-67L,-65L,-62L,-63L,-61L,-62L,-65L,-61L,-64L),WiFi5 = c(-71L,-71L,-76L,-77L,-77L,-76L,-69L,-74L,-76L,-80L ),-77L,-72L,-73L,-70L,-74L,-71L,-70L,-73L,-73L,-70L,WiFi6 =c(-82 L,-85L,-85L,-90L,-81L,-88L,-87L,-87L,-86L,-86L,-83L,-86L,-84L,-85L,-89L,-86L,-83L,-83L,-84L,-84L),WiFi7 = c(-81L )-85L,-84L,-80L,-87L,-83L,-84L,-82L,-82L,-91L,-91L,-81 L,-81L,-83L,-87L,-91L,-91L,-84L,-88L,-84L,-84L,-84L,-84L,-84L,-84L,-84L,-81L,-84L,-81L,-81L,-81L,-81L,-81L,-91L,-91L,-91L,-91L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-81L,-87L,-81L,-83L,-84L,-84L,-82L,-82L,-82L,-91L,-91L,-91L,-81L,-83L,-87L,-91L,-88L,-84L,-.Label = c("FALSE","TRUE"),class =“factor”),row.names = c(NA,20L),class = "data.frame")

我得到了错误:terms.formula中的错误(公式,data = data):'.‘在公式和无“数据”参数

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-04-29 13:52:34

您的代码存在一些问题:首先,我不认为在培训和测试中像您这样根据结果的值来分割数据是个好主意。这样,您的培训将不会包含所有级别的结果,同样的测试集。

在这里,我发布了一个没有问题的示例(我必须在数据中添加缺失的级别,因为很明显,data.frame的前20行在结果中没有包含真值):

代码语言:javascript
复制
#for the crateDataPartition function
library(caret)

#add some TRUE in the outcome
wifiLocDat$Loc3 <- c(rep(F,10),rep(T,10))
#transform back to factor
wifiLocDat$Loc3 <- as.factor(wifiLocDat$Loc3)
#create index for data splitting
ind <- createDataPartition(wifiLocDat$Loc3,p=0.7,list = F)
train<- wifiLocDat[ind,]
test <- wifiLocDat[-ind,]

set.seed(4343)
tune.out <- tune("svm",Loc3~.,data = wifiLocDat,kernel="polynomial", ranges=list(degree=c(1,2,3,4,5,6)))
summary(tune.out)
svmPoly <- svm(Loc3~., data=train, kernel="polynomial",coef0=1,degree = 3)

在这里,一切都没有问题。

然而,使用您发布的示例数据,我无法重现您的错误,但是当我运行您的代码时,会得到另一个错误。

predict.svm中的错误(ret,xhold,decision.values = TRUE):模型是空的!

我想是因为你没有训练结果的所有可能值

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

https://stackoverflow.com/questions/67309353

复制
相关文章

相似问题

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