tn1, fp1, fn1, tp1 = confusion_matrix(test_y, y_pred_classes1).ravel() 求阳性预测值,阴性预测值,阳性似然比,阴性似然比,特异性,灵敏度,f1-score 的 代码
时间: 2024-09-19 11:15:50 浏览: 53
好的,这是基于Python的scikit-learn库计算精度、召回率、F1分数等指标的一段代码片段:
```python
import numpy as np
from sklearn.metrics import confusion_matrix
# 假设test_y是实际标签列表,y_pred_classes1是预测结果的列表
# 计算混淆矩阵
tn1, fp1, fn1, tp1 = confusion_matrix(test_y, y_pred_classes1).ravel()
# 阳性预测值(Precision)
precision_pos1 = tp1 / (tp1 + fp1)
# 阴性预测值(Recall / Sensitivity)
recall_neg1 = tn1 / (tn1 + fn1)
# 灵敏度 = Recall / TPR
sensitivity1 = tp1 / (tp1 + fn1)
# 特异性 = Specificity = 1 - False Positive Rate (FPR)
specificity1 = tn1 / (fp1 + tn1)
# 阳性似然比 (Positive Likelihood Ratio, PLR)
plr1 = sensitivity1 / (1 - specificity1)
# 阴性似然比 (Negative Likelihood Ratio, NLR)
nlr1 = (1 - sensitivity1) / specificity1
# F1-score
f11 = f1_score(test_y, y_pred_classes1, average='binary')
# 打印结果
print("阳性预测值 (Precision):", precision_pos1)
print("阴性预测值 (Recall / Sensitivity):", recall_neg1)
print("阳性似然比 (PLR):", plr1)
print("阴性似然比 (NLR):", nlr1)
print("特异性:", specificity1)
print("灵敏度 (Sensitivity):", sensitivity1)
print("F1-Score:", f11)
```
这段代码首先生成混淆矩阵,然后根据矩阵的元素分别计算出所需的性能指标。注意,这里的`average='binary'`表示在计算F1 Score时,假设这是一个二分类问题。如果有多分类任务,则需要调整这个参数。
阅读全文