R SVM предсказать новые данные против новых - PullRequest
0 голосов
/ 21 июня 2019

Я построил простую машину SVM в R. Когда я хочу предсказать класс набора тестов и использовать newdata, я получаю другой результат, чем когда я использую newx.

По любой причине newx даетгораздо лучший результат.

set.seed(1)
x=matrix(rnorm(200*2), ncol=2)
x[1:100,]=x[1:100,]+2
x[101:150,]=x[101:150,]-2
y=c(rep(1,150),rep(2,50))
dat=data.frame(x=x,y=as.factor(y))
plot(x, col=y)
train=sample(200,100)

tune.out=tune(svm, y~., data=dat[train,], kernel="radial", ranges=list(cost=c(0.1,1,10,100,1000),gamma=c(0.5,1,2,3,4)))

table(true=dat[-train,"y"], pred=predict(tune.out$best.model,newdata = dat[-train,]))

table(true=dat[-train,"y"], pred=predict(tune.out$best.model,newx =     dat[-train,]))

Матрица путаницы намного лучше - с использованием newx Может кто-нибудь сказать мне, что происходит

...