如何通过循环获得混淆矩阵值?
How can I get confusion matrix values with a loop?
我试图设置一个可以从混淆矩阵中获取特定值的循环,但这对我来说是不可能的。
这是我心中的简单想法:
knn_MaC <- function(train,test,label,test_label,k,positive){
z <- matrix()
for (i in k){
Yp <- knn(train = train, test = test, cl= label,k = i)
MaC <- confusionMatrix(Yp,test_label,positive)
z <- c(MaC$table[2],MaC$table[3])
}}
正如我所说,我尝试了很多方法来获取各种错误。我的想法是获取这些值来制作简历 table.
在下面的代码中,我制作了一些示例数据,并编写了一个适合我的函数:
library(class)
library(caret)
library(data.table)
train <- rbind(iris3[1:25,,2], iris3[1:25,,3])
test <- rbind(iris3[26:50,,2], iris3[26:50,,3])
cl <- factor(c(rep("c",25), rep("s",25)))
test_label <- factor(c(rep("c",25), rep("s",25)))
k <- c(3,5,7,11)
positive <- NULL
knn_MaC <- function(train,test,label,test_label,k,positive){
z <- list()
for (i in k){
Yp <- knn(train = train, test = test, cl= label,k = i)
MaC <- confusionMatrix(Yp,test_label,positive)
z[[i]] <- data.frame(k=i,
False_negative=MaC$table[2],
False_positive=MaC$table[3])
}
return(rbindlist(z))
}
final_results <- knn_MaC(train,test,label,test_label,k,positive)
如果这对您不起作用,您可能需要提供一个数据示例。另外,请确保在测试之前已完全清除环境。
我试图设置一个可以从混淆矩阵中获取特定值的循环,但这对我来说是不可能的。
这是我心中的简单想法:
knn_MaC <- function(train,test,label,test_label,k,positive){
z <- matrix()
for (i in k){
Yp <- knn(train = train, test = test, cl= label,k = i)
MaC <- confusionMatrix(Yp,test_label,positive)
z <- c(MaC$table[2],MaC$table[3])
}}
正如我所说,我尝试了很多方法来获取各种错误。我的想法是获取这些值来制作简历 table.
在下面的代码中,我制作了一些示例数据,并编写了一个适合我的函数:
library(class)
library(caret)
library(data.table)
train <- rbind(iris3[1:25,,2], iris3[1:25,,3])
test <- rbind(iris3[26:50,,2], iris3[26:50,,3])
cl <- factor(c(rep("c",25), rep("s",25)))
test_label <- factor(c(rep("c",25), rep("s",25)))
k <- c(3,5,7,11)
positive <- NULL
knn_MaC <- function(train,test,label,test_label,k,positive){
z <- list()
for (i in k){
Yp <- knn(train = train, test = test, cl= label,k = i)
MaC <- confusionMatrix(Yp,test_label,positive)
z[[i]] <- data.frame(k=i,
False_negative=MaC$table[2],
False_positive=MaC$table[3])
}
return(rbindlist(z))
}
final_results <- knn_MaC(train,test,label,test_label,k,positive)
如果这对您不起作用,您可能需要提供一个数据示例。另外,请确保在测试之前已完全清除环境。