是否可以在Caret Train功能中选择不同的ROC设定点,而不是使用metric = ROC(我认为最大化AUC)。
例如:
random.forest.orig <- train(pass ~ x+y,
data = meter.train,
method = "rf",
tuneGrid = tune.grid,
metric = "ROC",
trControl = train.control)
具体来说,我有两类问题(失败或通过),我想最大化失败预测,同时仍然保持> 80%的失败准确度(或负预测值)。即每10次失败,我预测其中至少有8次是正确的。
答案 0 :(得分:0)
您可以自定义caret::trainControl()
对象以使用AUC而不是精确度来调整模型的参数。有关详细信息,请查看caret documentation。 (内置函数twoClassSummary将计算ROC曲线下的灵敏度,特异性和面积。)
注意:为了计算类概率,pass
要素必须是因子
下面是使用5倍CV的例子:
fitControl <- caret::trainControl(
method = "cv",
number = 5,
summaryFunction = twoClassSummary,
classProbs = TRUE,
verboseIter = TRUE
)
所以你的代码会稍微调整一下:
random.forest.orig <- train(pass ~ x+y,
data = meter.train,
method = "rf",
tuneGrid = tune.grid,
metric = "ROC",
trControl = fitControl)
# Print model to console to examine the output
random.forest.orig