机器学习分类模型:R语言实现支持向量机

本文介绍如何使用支持向量机(SVM)进行多分类预测任务,通过重采样方法增强模型稳定性,展示了参数寻优、模型训练、预测评估等步骤,并分析了预测变量的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运用支持向量机实现多分类预测任务,并采用重采样的方法确保模型稳定性。

  #1. find the parameters
  fit.svm <- train(trainset[,-1], trainset$y, "svmRadialWeights", trControl = trainControl(method = "cv",number = 10))
  fit.svm

#查看预测变量的重要性排序
  varImp(fit.svm)  
  plot(fit.svm)
  
  #2. ksvm(kernlab package)

require("kernlab")
  set.seed(7777)
  ksvm.train <- ksvm(y ~ .,
                     data=trainset[,-1],
                     sigma = 0.01164937, C = 1,weight = 1, shrinking = TRUE)
 

#3. predict in testset
  set.seed(77)
  ksvm.test <- predict(ksvm.train,newdata=testset)
  ksvm.t <- table(ksvm.test,testset$y)
  ksvm.Precision <- ksvm.t[2,2]/(ksvm.t[2,2]+ksvm.t[2,1])
  ksvm.Recall <- ksvm.t[2,2]/(ksvm.t[2,2]+ksvm.t[1,2])
  ksvm.fscore <- 2*(ksvm.Precision*ksvm.Recall)/(ksvm.Precision+ksvm.Recall)
 

#4.confusion matrix
  set.seed(77)
  ksvm.cf <- confusionMatrix(ksvm.test,testset$y)
  
#5. ROC, AUC
  set.seed(77)
  roc.ksvm <- roc(testset$y, as.numeric(ksvm.test))
  
#6. 10-fold CV
  set.seed(77) # for 10-fold EM
  tuned.svm <- tune.svm(x = trainset[,-1], y = as.factor(trainset$y)) # tune
  
  result.svm1 <- data.frame()
  result.svm1 <- rbind(result.svm1, ksvm.cf$overall[1])
  result.svm1 <- cbind(result.svm1, t(ksvm.cf$byClass[c(1,2)]))
  result.svm1$auc <- roc.ksvm$auc
  result.svm1$cv <- tuned.svm$performances$error
  names(result.svm1) <- c("accuracy", "sensitivity", "specificity", "auc", "cv")
  
  
#7. plot
  data.svm <- subset(trainset,select=c(cancer))
  svm.train4 <- svm(as.factor(cancer) ~., data = data.svm, kernel = "sigmoid",gamma = 0.01, cost = 100)
  summary(svm.train4)  
  plot(svm.train4,data = data.svm, svSymbol = 1, dataSymbol = 2, symbolPalette = rainbow(2),
       color.palette = terrain.colors)
  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值