我试图在R中编写一个函数,使用svm进行分类,找到混淆矩阵。

时间:2017-09-11 19:02:08

标签: r svm confusion-matrix

我正在尝试编写一个程序,其中y(输出)变量的数据和占位符被赋予该函数。该函数产生数据集和测试数据的混淆矩阵。这实际上是我在这种功能上的第五次尝试 - 这就是为什么这个功能的大部分来自使用虹膜数据作为数据集的手册 - 但我似乎卡在该函数的y.vec输入上。我将y变量插入函数的方法是否正确?

任何帮助将不胜感激,并提前感谢您。

这是我的功能。

功能(数据,y.vec)

{
    库(e1071)     库(rpart包)     数据=数据

Math.max(n,0)

}

1 个答案:

答案 0 :(得分:0)

希望这有帮助!

myFunc <- function(df, y.vec)
  {
    library(e1071) 

    df[,y.vec] <- as.factor(df[,y.vec])

    set.seed(1)
    index <- 1:nrow(df)
    testindex <- sample(index, trunc(length(index)/3))
    testset <- df[testindex,]
    trainset <- df[-testindex,]

    svm.model <- svm(as.formula(paste(y.vec, "~ .")), data = trainset, cost = 100, gamma = 1)
    svm.pred <- predict(svm.model, testset[,!(names(testset) %in% y.vec)])

    return(table(pred = svm.pred, true = testset[,y.vec]))
  }

myFunc(iris, "Species")