灵敏度(Sensitivity, Sn)、特异性(Specificity, Sp)、准确率(Accuracy, Acc)、马修斯相关系数(MCC)和ROC曲线下的面积(AUC)代码
时间: 2024-10-05 14:01:03 浏览: 40
sensitivity.rar_matlab_sensitivity_截面积_灵敏度_灵敏度求解
灵敏度(Sensitivity 或 Recall),又称为真阳性率,是指实际为正样本中被模型正确识别的比例,公式通常是 TP / (TP + FN),其中TP表示真正例(True Positive),FN表示假阴性(False Negative)。特异性(Specificity)则是指预测为负样本中真实为负的比例,即 TN / (TN + FP),TPR = Sensitivity,TNR = Specificity。
准确率(Accuracy)计算的是所有预测正确的样本数占总样本数的比例,即 (TP + TN) / (TP + TN + FP + FN)。然而,对于类别不平衡的数据集来说,准确率可能会误导,因为它没有考虑到错误分类的重要性。
马修斯相关系数(Matthews Correlation Coefficient, MCC)是一种用于评估二分类模型性能的统计量,它的值介于-1和1之间,正值代表较好的分类效果,0表示随机猜测,负值则表示较差。
ROC曲线(Receiver Operating Characteristic Curve)下的面积(Area Under the Curve, AUC)是一个常用的评价指标,它衡量了模型在所有阈值下,真正例率(TPR)与假正例率(FPR)之间的权衡。AUC值越接近1,模型性能越好;0.5表示随机猜测。
以下是使用Python的sklearn库计算这些指标的简单示例:
```python
from sklearn.metrics import confusion_matrix, recall_score, precision_score, accuracy_score, matthews_corrcoef, roc_auc_score
# 假设y_true是真实的标签,y_pred是模型预测的结果
conf_mat = confusion_matrix(y_true, y_pred)
TP = conf_mat[1, 1] # 真正例
FP = conf_mat[0, 1] # 假正例
FN = conf_mat[1, 0]
阅读全文