使用 svm 编写一个函数来查找混淆矩阵以进行分类
Writing a function that finds the confusion matrix using a svm for classification
我正在尝试编写一个程序,其中将 y(输出)变量的数据和占位符提供给函数。该函数为数据集和测试数据生成混淆矩阵。这实际上是我对此类功能的第 5 次尝试——这就是为什么大部分功能来自使用 iris 数据作为数据集的手册——但我似乎卡在了该功能的 y.vec 输入上.我将 y 变量插入函数的方法是否正确?
这是我的函数。
function(data,y.vec)
{
library(e1071)
library(rpart)
data=data
index <- 1:nrow(data)
testindex <- sample(index, trunc(length(index)/3))
testset <- data[testindex,]
trainset <- data[-testindex,]
svm.model <- svm(as.factor(data[y.vec]) ~ ., data = trainset, cost = 100, gamma = 1)
svm.pred <- predict(svm.model, testset[,-y.vec])
table(pred = svm.pred, true = testset[,y.vec])
}
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")
我正在尝试编写一个程序,其中将 y(输出)变量的数据和占位符提供给函数。该函数为数据集和测试数据生成混淆矩阵。这实际上是我对此类功能的第 5 次尝试——这就是为什么大部分功能来自使用 iris 数据作为数据集的手册——但我似乎卡在了该功能的 y.vec 输入上.我将 y 变量插入函数的方法是否正确?
这是我的函数。
function(data,y.vec)
{
library(e1071)
library(rpart)
data=data
index <- 1:nrow(data)
testindex <- sample(index, trunc(length(index)/3))
testset <- data[testindex,]
trainset <- data[-testindex,]
svm.model <- svm(as.factor(data[y.vec]) ~ ., data = trainset, cost = 100, gamma = 1)
svm.pred <- predict(svm.model, testset[,-y.vec])
table(pred = svm.pred, true = testset[,y.vec])
}
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")