R中Matthews相关系数函数(mcc)无法工作

我使用以下函数计算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") #randomForestpred_rf=predict(method_rf,data.test[,2:3]) #Predict randomForesttab_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

回答:

正如错误信息所暗示的,你应该使用 任一 {'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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注