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相关系数)以评估插入符号模型的主要内容,如果未能解决你的问题,请参考以下文章

计算矩阵的 Matthew 相关系数需要很长时间

如何理解皮尔逊相关系数

相关性与自相关性

R语言编写自定义函数评估回归模型预测变量的相对重要性(Relative importance)通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加评估预测变量的重要度并通过点图可视化

如何理解皮尔逊相关系数

多元线性回归的模型可以是一元模型吗