SVM.rar

  • 我是大宝呀
    了解作者
  • R language
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 0
    下载次数
  • 2019-12-10 15:39
    上传日期
支持向量机的代码,可以通过此代码对数据应用支持向量机进行分析
SVM.rar
  • SVM.R
    2.3KB
内容介绍
library(e1071) data(iris) model<-svm(Species~.,data=iris) #使用所有的变量作为特征变量,直接利用函数建模 #将特征向量和结果向量分别提取出来,特征向量用矩阵表示,结果向量用向量表示 fix(iris) x<-iris[,1:4];y<-iris[,5] model_1<-svm(x,y,kernel="radial",gamma=if(is.vector(x)) 1 else 1/ncol(x)) pre<-predict(model_1,x) set.seed(1234)#随机抽样时设定随机种子复现结果 print(pre[sample(1:150,8)]) table(pre,y) #查看精度 综合建模: library(e1071) attach(iris) x <- subset(iris, select = -Species) y <- Species type <- c("C-classification","nu-classification","one-classification") kernel <- c("linear","polynomial","radial","sigmoid") pred <- array(0,dim = c(150,3,4)) accuracy <- matrix(0,3,4) yy <- as.integer(y) for(i in 1:3){ for(j in 1:4){ pred[,i,j] <- predict(svm(x,y,type=type[i],kernel=kernel[j]),x) if (i>2) { accuracy[i,j] <- sum(pred[,i,j]!=1) } else { accuracy[i,j] <- sum(pred[,i,j]!=yy) } } } dimnames(accuracy)=list(type,kernel) accuracy pred<- predict(svm(x,y.type=type[1],kernel="polymial"),x) model_1<-svm(x,y,kernel="radial",gamma=if(is.vector(x)) 1 else 1/ncol(x)) pre<-predict(model_1,x) set.seed(1234)#随机抽样时设定随机种子复现结果 print(pre[sample(1:150,8)]) table(pre,y) #查看精度 table(pred, y) plot(cmdscale(dist(iris[,-5])), col=c("lightgray","black","gray")[as.integer(iris[,5])], pch=c("o","+")[1:150 %in% model$index + 1]) legend(2,-0.8,c("setosa","versicolor","virginica"),col = c("lightgray","black","gray"),lty=1) dev.new() data(iris) model <- svm(Species~., data = iris) plot(model, iris, Petal.Width~Petal.Length,fill = FALSE, symbolPalette = c("lightgray","black","grey"),svSymbol = "+") legend(1,2.5,c("setosa","versicolor","virginica"),col = c("lightgray","black","gray"),lty=1) wts <- c(1,1,1)#优化 names(wts) <- c("setosa","versicolor","virginica") model1 <- svm(x,y,class.weights = wts) wts <- c(1,100,100) names(wts) <- c("setosa","versicolor","virginica") model2 <- svm(x,y,class.weights = wts) pred2 <- predict(model2,x) table(pred2,y) wts <- c(1,500,500) names(wts) <- c("setosa","versicolor","virginica") model3 <- svm(x,y,class.weights = wts) pred3 <- predict(model3,x) table(pred3,y) ind<-sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3)) #70%为训练集 30%为测试集 train<-iris[ind==1,] test<-iris[ind==2,]
评论
    相关推荐
    • svm.rar
      SVM算法是的发生过的话费旮说句话大概水电费感受到很过分
    • Svm.rar
      Libsvm-FarutoUltimate3.0 based on libsvm-mat-2.89-3,上交大大佬写的,很棒的学习资料
    • SVM.rar
      crop yeild prediction using SVM
    • SVM.rar
      用python代码实现svm向量机,如果有错误希望大家多多指正
    • RSVM
      RSVM 该源代码是根据以下算法进行编程的: R. Collobert,F.Sinz,J.Weston,L.Bottou,“采用凸性实现可伸缩性”,Proc。 23th Int。 Conf。 马赫Learn。,2006年,第201-208页。 如果您使用该代码进行研究,请...
    • matlab实现svm.zip
      matlab实现svm
    • svm.zip
      SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器 [2] 。SVM可以通过核方法(kernel method)...
    • SVM.rar
      SVM machine learning
    • 5.1SVM.rar
      SVM支持向量机的测试代码以及对应的运行结果
    • SVM.rar
      svm功能,用于测试训练,其中含有大量程序,可以选择使用。