R中逻辑回归的交叉验证函数中的成本函数参数

时间:2021-04-06 01:59:56

标签: r logistic-regression glm

我正在学习一门解释逻辑回归交叉验证的课程。我知道交叉验证是如何工作的。代码如下所示:

library(boot)
library(SDMTools)
# Accuracy function with threshold = 0.3
Acc03 <- function(r, pi = 0) {
cm <- confusion.matrix(r, pi, threshold = 0.3)
acc <- sum(diag(cm)) / sum(cm)
return(acc)}
# Accuracy
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta

在上面的代码中,confusion.matrix 函数(来自 SDM 工具库)采用以下参数

cofusion.matrix(actual values , predicted values , threshold)

我无法理解下面 cv.glm 代码的成本部分:

cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta

我尝试使用以下代码:

Acc03 <- function(r, pi = 0,threshold = 0.3) {
cm <- confusion.matrix(r, pi, threshold)
acc <- sum(diag(cm)) / sum(cm)
return(acc)}
# Accuracy
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = 
Acc03(r=actual_values,p=predicted_values,threshold=0.3), K = 6)$delta

我不工作。我这样做是因为我不明白为什么在原始代码中它在 cv.glm 中写为 cost=Acc03 在我的理解中,Acc03 是一个带有 3 个参数的函数。当没有给定参数并且我的代码不起作用时,cost=Acc03 怎么工作

0 个答案:

没有答案
相关问题