【问题标题】:Matthews correlation coefficient function (mcc) in R doesn't workR中的马修斯相关系数函数(mcc)不起作用
【发布时间】:2021-10-15 17:29:26
【问题描述】:

我正在使用这个函数来计算 MCC:https://www.rdocumentation.org/packages/mltools/versions/0.3.5/topics/mcc

它会产生这个错误:

Error in mcc (actuals = data.test $ Y, preds = pred_rf, TP = tab_rf [1, 1],:
   Either {'preds' and 'actuals'} or {'TP', 'FP', 'TN', 'FN'} or {'confusionM'} should be provided.

我的代码如下(我使用的是随机森林):

library("mltools")
library("caret") 
library("MASS")
library("MLmetrics") 

data=data.frame()

for (i in 0:4){ 
  
  mu1=c(0+i,4) 
  Sigma= matrix(c(1,0.5,0.5,1),ncol=2)
  X1_distribution=mvrnorm(n=100,mu=mu1,Sigma=Sigma)
  
  
  mu2=c(5-i,1) 
  Sigma= matrix(c(1,0.5,0.5,1),ncol=2) 
  X2_distribution=mvrnorm(n=100,mu=mu2,Sigma=Sigma)
  
  X=rbind(X1_distribution,X2_distribution)
  Y=c(rep(1,100),
      rep(0,100)) 
  data.aux=data.frame(Y=Y,
                      X1=X[,1],
                      X2=X[,2])
  
  data=rbind(data,data.aux)
}

data.train=data[1:800,]
data.test=data[801:1000,]

method_rf= train(form= formula('factor(Y) ~ .'),data=data.train, method="rf") #randomForest
pred_rf=predict(method_rf,data.test[,2:3]) #Predict randomForest
tab_rf=table(actual=data.test$Y,  #ConfusionMatrix for RF
             predicted=pred_rf)

metrics_rf=data.frame(MCC_rf=mcc(actuals=data.test$Y,
                                 preds=pred_rf, 
                                 TP=tab_rf[1,1],
                                 FP=tab_rf[1,2],
                                 TN=tab_rf[2,2],
                                 FN=tab_rf[2,1],
                                 confusionM=tab_rf))
metrics_rf

【问题讨论】:

    标签: r machine-learning


    【解决方案1】:

    正如错误消息所暗示的,您应该使用 either {'preds' and 'actuals'} {'TP', 'FP', 'TN', 'FN'} {'confusionM'},但肯定不是所有这些都在一起,就像你在这里尝试做的那样。

    将代码中的 MCC 计算更改为

    MCC_rf=mcc(TP=tab_rf[1,1],
               FP=tab_rf[1,2],
               TN=tab_rf[2,2],
               FN=tab_rf[2,1])
    

    像魅力一样工作:

    > MCC_rf
    [1] 0.60012
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多