如何用 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 中计算分类模型的其他常见指标: