R中SVM的一类分类

  发布于 2022-12-07 11:14
  • svm
  • 我正在使用R中的包e1071来构建一个类SVM模型.我不知道该怎么做,我也没有在互联网上找到任何例子.

    有人可以给出一个示例代码来表征,例如,使用一类分类模型在"虹膜"数据集中表示"setosa"类,然后测试同一数据集中的所有示例(以便检查哪些示例属于"setosa"类的特征和哪些例子没有)?

    2 个回答
    • 我想这就是你想要的:

      library(e1071)
      data(iris)
      df <- iris
      
      df <- subset(df ,  Species=='setosa')  #choose only one of the classes
      
      x <- subset(df, select = -Species) #make x variables
      y <- df$Species #make y variable(dependent)
      model <- svm(x, y,type='one-classification') #train an one-classification model 
      
      
      print(model)
      summary(model) #print summary
      
      # test on the whole set
      pred <- predict(model, subset(iris, select=-Species)) #create predictions
      

      输出:

      -摘要:

      > summary(model)
      
      Call:
      svm.default(x = x, y = y, type = "one-classification")
      
      
      Parameters:
         SVM-Type:  one-classification 
       SVM-Kernel:  radial 
            gamma:  0.25 
               nu:  0.5 
      
      Number of Support Vectors:  27
      
      
      
      
      Number of Classes: 1
      

      -Predictions(由于视觉原因,此处仅显示了一些预测(其中Species =='setosa')):

      > pred
          1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20    21    22 
       TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE 
         23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44 
      FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE 
         45    46    47    48    49    50 
      FALSE  TRUE  TRUE  TRUE  TRUE  TRUE 
      

      2022-12-11 02:04 回答
    • 精确地编写了一些代码:train = 78.125 test = 91.53:

      library(e1071)
      library(caret)
      library(NLP)
      library(tm)
      
      data(iris)
      
      iris$SpeciesClass[iris$Species=="versicolor"] <- "TRUE"
      iris$SpeciesClass[iris$Species!="versicolor"] <- "FALSE"
      trainPositive<-subset(iris,SpeciesClass=="TRUE")
      testnegative<-subset(iris,SpeciesClass=="FALSE")
      inTrain<-createDataPartition(1:nrow(trainPositive),p=0.6,list=FALSE)
      
      trainpredictors<-trainPositive[inTrain,1:4]
      trainLabels<-trainPositive[inTrain,6]
      
      testPositive<-trainPositive[-inTrain,]
      testPosNeg<-rbind(testPositive,testnegative)
      
      testpredictors<-testPosNeg[,1:4]
      testLabels<-testPosNeg[,6]
      
      svm.model<-svm(trainpredictors,y=NULL,
                     type='one-classification',
                     nu=0.10,
                     scale=TRUE,
                     kernel="radial")
      
      svm.predtrain<-predict(svm.model,trainpredictors)
      svm.predtest<-predict(svm.model,testpredictors)
      
      # confusionMatrixTable<-table(Predicted=svm.pred,Reference=testLabels)
      # confusionMatrix(confusionMatrixTable,positive='TRUE')
      
      confTrain<-table(Predicted=svm.predtrain,Reference=trainLabels)
      confTest<-table(Predicted=svm.predtest,Reference=testLabels)
      
      confusionMatrix(confTest,positive='TRUE')
      
      print(confTrain)
      print(confTest)
      2022-12-11 02:08 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有