如何用 python 计算马修斯相关系数


马修斯相关系数(MCC)是我们可以用来评估分类模型性能的指标。

计算方法如下:

MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

金子:

  • TP :真阳性数
  • TN :真阴性数
  • FP :误报数
  • FN :漏报数

当两个类不平衡时,即一个类出现的次数比另一类多得多时,该指标特别有用。

MCC 的值介于 -1 和 1 之间,其中:

  • -1表示预测类别与实际类别之间完全不一致
  • 0表示完全随机猜测
  • 1表示预测类别与实际类别完全一致

例如,假设体育分析师使用逻辑回归模型来预测 400 名不同的大学篮球运动员是否会被选入 NBA。

以下混淆矩阵总结了模型所做的预测:

为了计算模型的MCC,我们可以使用以下公式:

  • MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • MCC = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • MCC = 0.7368

马修斯相关系数为0.7368 。这个值有点接近 1,表明该模型在预测球员是否会被选中方面做得不错。

以下示例展示了如何使用 Python 中sklearn库中的matthews_corrcoef()函数计算此特定场景的 MCC。

示例:用 Python 计算马修斯相关系数

以下代码展示了如何在Python中定义预测类数组和实际类数组,然后计算模型的Matthews相关系数:

 import numpy as np
from sklearn. metrics import matthews_corrcoef

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate Matthews correlation coefficient
matthews_corrcoef(actual, pred)

0.7368421052631579

MCC 为0.7368 。这与我们之前手动计算的值相符。

注意:您可以在此处找到matthews_corrcoef()函数的完整文档。

其他资源

以下教程解释了如何在 Python 中计算分类模型的其他常见指标:

Python 中的逻辑回归简介
如何用Python计算F1分数
如何在Python中计算平衡精度

添加评论

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