sigmoid.svm.fit <- svm(label ~ x y, data = dataSim, kernel ='sigmoid')
with(dataSim, mean(label == ifelse(predict(sigmoid.svm.fit) > 0,1, -1)))
df <- cbind(dataSim,
data.frame(LinearSVM = ifelse(predict(linear.svm.fit) > 0, 1, -1),
PolynomialSVM = ifelse(predict(polynomial.svm.fit) > 0, 1, -1),
RadialSVM = ifelse(predict(radial.svm.fit) > 0, 1, -1),
SigmoidSVM = ifelse(predict(sigmoid.svm.fit) > 0, 1, -1)))
library("reshape")
predictions <- melt(df, id.vars = c('x', 'y'))
library('ggplot2')
ggplot(predictions, aes(x = x, y = y, color = factor(value)))
geom_point()
facet_grid(variable ~ .)
最后,我们回到最开始的那个手写数字的案例,我们试着利用支持向量机重做这个案例。(这个案例的描述与数据参见《R语言与机器学习学习笔记(分类算法)(1)》)
运行代码:
setwd("D:/R/data/digits/trainingDigits")
names<-list.files("D:/R/data/digits/trainingDigits")
data<-paste("train",1:1934,sep="")
for(i in 1:length(names))
assign(data[i],as.vector(as.matrix(read.fwf(names[i],widths=rep(1,32)))))
label<-rep(0:9,c(189,198,195,199,186,187,195,201,180,204))
data1<-get(data[1])
for(i in 2:length(names))
data1<-rbind(data1,get(data[i]))
m <- svm(data1,label,cross=10,type="C-classification")
m
summary(m)
pred<-fitted(m)
table(pred,label)
setwd("D:/R/data/digits/testDigits")
names<-list.files("D:/R/data/digits/testDigits")
data<-paste("train",1:1934,sep="")
for(i in 1:length(names))
assign(data[i],as.vector(as.matrix(read.fwf(names[i],widths=rep(1,32)))))
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30138-5.html
千玺