gpt4 book ai didi

requireNamespaceQuietStop 在自定义 summaryFunction 插入符号中导致错误

转载 作者:行者123 更新时间:2023-12-04 10:30:09 24 4
gpt4 key购买 nike

我“更新”了 caret 中的 twoClassSummary 函数,以使用 caret 函数包括阴性和阳性预测值:

testfun <- function (data, lev = NULL, model = NULL) 
{
lvls <- levels(data$obs)
if (length(lvls) > 2)
stop(paste("Your outcome has", length(lvls), "levels. The
twoClassSummary() function isn't appropriate."))
requireNamespaceQuietStop("ModelMetrics")
if (!all(levels(data[, "pred"]) == lvls))
stop("levels of observed and predicted data do not match")
data$y = as.numeric(data$obs == lvls[2])
rocAUC <- ModelMetrics::auc(ifelse(data$obs == lev[2], 0,
1), data[, lvls[1]])
out <- c(rocAUC, sensitivity(data[, "pred"], data[, "obs"], lev[1]),
specificity(data[, "pred"], data[, "obs"], lev[2]),
# next 3 lines are my additions and modifications
negPredValue(data[, "obs"], data[, "pred"], lev[2]),
posPredValue(data[, "obs"], data[, "pred"], lev[1]))
names(out) <- c("ROC", "Sens", "Spec", "NPV", "PPV")
out
}

然后我的 trainControl 功能:
train_control <- trainControl(method = 'repeatedcv', 
number = 10, repeats = 3,
summaryFunction = testfun,
classProbs = T,
savePredictions = T)

然后我的模型功能:
modelSvm <- train(target ~ ., data = twoClassData, trControl = train_control, method = 'svmRadial')

问题是当我运行这个函数时,我收到错误
ctrl$summaryFunction(testOutput, lev, method) 中的错误:
找不到函数“requireNamespaceQuietStop”

即使我没有改变函数的那部分。

如果我输入
twoClassSummary

在控制台中,

环境:命名空间:插入符号

在函数定义之后的末尾出现(在 < > 符号之间),我相信这是我的问题的根源。

1) 如何在函数中将 R 定向到此环境?和
2)准确性不是预定义的插入符号函数,有关如何将准确性工作到此代码中的任何建议?

提前致谢....

最佳答案

该函数不是由 caret 导出的,所以使用 caret::: requireNamespaceQuietStop代替(或使用使用过的 library )。

关于requireNamespaceQuietStop 在自定义 summaryFunction 插入符号中导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44837807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com