如何将参数传递给插入符号包中的 twoClassSummary

How to pass arguments to twoClassSummary in caret package

我正在尝试一些非常简单的事情:对 caret 包中的 twoClassSummary 进行函数调用。

一个代表

library(caret)

pred <- runif(1000, min = 0, max = 1)
obs <- rbinom(1000, size = 1, prob = pred)

twoClassSummary(
  data = data.frame(
    obs = obs,
    pred = pred
  )
)

这会产生以下错误:

Error in auc_(actual, predicted) : Not compatible with requested type: [type=list; target=double].

我所知道的

我查看了 twoClassSummary 的文档,但似乎不太清楚。其中大部分集中在对 trainControl

的调用中使用

最重要的是,我只想知道文档应该更清楚地说明什么:

twoClassSummary 需要四列的数据框:

列命名为响应级别 1 class,具有相应的预测概率(在本例中为 "Y"):

set.seed(1)
Y <- runif(1000, min = 0, max = 1)

obs - 真实标签:

obs <- rbinom(1000, size = 1, prob = Y)
obs <- factor(ifelse(obs == 1, "Y", "N"))

列命名为 2 级响应 class,具有相应的预测概率(在本例中为 "N"):

 N <- 1 - Y

pred - 预测标签(使用默认阈值 0.5):

pred <- ifelse(Y > 0.5, "Y", "N")

现在:

twoClassSummary(
  data = data.frame(obs = obs,
                    pred = pred,
                    Y = Y, 
                    N = N),
  lev = levels(obs))

输出:

      ROC      Sens      Spec 
0.8253911 0.7529183 0.7263374