支持向量机的R实现

来源:互联网 发布:程序员应该去的网站 编辑:程序博客网 时间:2024/05/18 02:14

二分类——使用信贷数据:

数据准备:

credit<-read.csv("credit.csv")str(credit) dim(credit) #考察数据的维度、样本量及各变量的基本情况set.seed(123)x<-sample(1:1000,200)credit_train=credit[-x,]credit_test=credit[x,] #随机抽取20%的样本作为测试集

模型建立:

library(kernlab) #加载这一个包并利用其中的ksvm函数classifier<-ksvm(default~.,data=credit_train,kernel="rbfdot") #对是否违约进行预测,采用高斯核

模型性能考察:

default_predictions<-predict(classifier,credit_test) #使用建立的模型对测试集进行预测library(gmodels)CrossTable(x=credit_test$default,y=default_predictions,prop.chisq = F)#结果如下:#  | default_predictions #credit_test$default |        no |       yes | Row Total | #--------------------|-----------|-----------|-----------|#                 no |       133 |        11 |       144 | #                    |     0.924 |     0.076 |     0.720 | #                    |     0.796 |     0.333 |           | #                    |     0.665 |     0.055 |           | #--------------------|-----------|-----------|-----------|#                yes |        34 |        22 |        56 | #                    |     0.607 |     0.393 |     0.280 | #                    |     0.204 |     0.667 |           | #                    |     0.170 |     0.110 |           | #--------------------|-----------|-----------|-----------|#       Column Total |       167 |        33 |       200 | #                    |     0.835 |     0.165 |           | #--------------------|-----------|-----------|-----------|

多分类:使用鸢尾花数据

y=sample(1:150,30)iris_train<-iris[-y,]iris_test<-iris[y,]iris_testmulti<-ksvm(Species~.,data=iris_train,kernel="rbfdot")predictions_species<-predict(multi,iris_test)table(iris_test$Species,predictions_species)

结果:

predicted_species actual species setosa versicolor virginica setosa 11 0 0 versicolor 0 6 0 virginica 0 1 12
原创粉丝点击