【发布时间】:2020-02-14 17:36:25
【问题描述】:
我想知道是否有办法在插入符号的train() 函数中指定结果变量的哪个类是正数。一个最小的例子:
# Settings
ctrl <- trainControl(method = "repeatedcv", number = 10, savePredictions = TRUE, summaryFunction = twoClassSummary, classProbs = TRUE)
# Data
data <- mtcars %>% mutate(am = factor(am, levels = c(0,1), labels = c("automatic", "manual"), ordered = T))
# Train
set.seed(123)
model1 <- train(am ~ disp + wt, data = data, method = "glm", family = "binomial", trControl = ctrl, tuneLength = 5)
# Data (factor ordering switched)
data <- mtcars %>% mutate(am = factor(am, levels = c(1,0), labels = c("manual", "automatic"), ordered = T))
# Train
set.seed(123)
model2 <- train(am ~ disp + wt, data = data, method = "glm", family = "binomial", trControl = ctrl, tuneLength = 5)
# Specifity and Sensitivity is switched
model1
model2
如果您运行代码,您会注意到特异性和敏感性指标在两个模型中都“切换”了。看起来train() 函数将因子结果变量的第一级作为正结果。有没有办法在函数本身中指定一个正类,所以无论结果因子排序如何,我都会得到相同的结果?我尝试添加positive = "manual",但这会导致错误。
【问题讨论】: