利用R语言 进行SVM练习
set.seed(1)
x=matrix(rnorm(100*2),ncol=2) # generate data
y=c(rep(-1,50),rep(1,50))
x[1:50,]=x[1:50,]+1
x[51:100,]=x[51:100,]-0.75
dat=data.frame(x=x,y=as.factor(y))
plot(x,col=y+3)
# radial
tout2=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) ))
summary(tout2)
svmfit2=svm(y~., data=dat [train ,], kernel ="radial", gamma =0.5, cost =10)
plot(svmfit2,dat[train,])
table(true=dat[-train,"y"], pred = predict (tout2$best.model,dat[-train ,]) )
# supportvector classifier (linear)
tone3=tune(svm,y~.,data=dat[train,],kernel="linear",ranges=list(cost=c (0.1 ,1 ,10 ,100 ,1000), gamma =c(0.5 ,1 ,2 ,3 ,4) ) )
summary(tone3)
svmfit3=svm(y~., data=dat [train ,], kernel ="linear", gamma =0.5, cost=1,decision.values=TRUE)
plot(svmfit3,dat[train,])
table(true=dat[-train,"y"], pred = predict (tone3$best.model, dat[-train,]) )