r 添加自定义评估函数度量(matthew相关系数)以评估插入符号模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r 添加自定义评估函数度量(matthew相关系数)以评估插入符号模型相关的知识,希望对你有一定的参考价值。
myFormula <- as.formula(paste0("is_pnio~", paste0(feat_names, collapse = "+")))
test_rs <- train(myFormula, data = subTrain,
method = "rf",
metric = "mcc", # "Kappa",
tuneGrid = expand.grid(maxdepth = c(2, 5)),
#tuneLength = 3,
trControl = trainControl( method = "cv", number = 5,
summaryFunction = caretMCCFunction))
caretMCCFunction <- function(data, lev = NULL, model = NULL) {
#print(head(data))
#print(NROW(data))
setDT(data)
tp <- data[obs=="yes" & pred=="yes", as.numeric(.N)] # .N by default returns an integer value, with large values this leads to integer overflows and NA values
tn <- data[obs=="no" & pred=="no", as.numeric(.N)]
fp <- data[obs=="no" & pred=="yes", as.numeric(.N)]
fn <- data[obs=="yes" & pred=="no", as.numeric(.N)]
mcc = (tp * tn - fp * fn) / sqrt((tp + fp) * (tp + fn) * (tn + fp) * (tn + fn))
#print(paste0("tp=", tp, ", tn=", tn, ", fp=", fp, ", fn=", fn, ", mcc=", mcc))
out <- mcc
names(out) <- "mcc"
out
}
以上是关于r 添加自定义评估函数度量(matthew相关系数)以评估插入符号模型的主要内容,如果未能解决你的问题,请参考以下文章