Q
QCFD
V1
2023/03/27阅读:47主题:默认主题
计算敏感性特异性准确性
使用python实现给定预测结果和真值以及阈值,求敏感性特异性,准确性。
可以使用混淆矩阵来计算分类模型的敏感性、特异性和准确性。 假设预测结果存储在y_pred中,真值存储在y_true中,阈值为threshold。
下面是一个Python函数,可以用来计算指定阈值的混淆矩阵,并从中计算出敏感性、特异性和准确性:
import numpy as np
def calculate_metrics(y_pred, y_true, threshold):
# 将预测结果转化为二元类别标签,1表示正例,0表示负例
y_pred_labels = np.where(y_pred >= threshold, 1, 0)
# 计算混淆矩阵
tp = np.sum((y_pred_labels == 1) & (y_true == 1))
tn = np.sum((y_pred_labels == 0) & (y_true == 0))
fp = np.sum((y_pred_labels == 1) & (y_true == 0))
fn = np.sum((y_pred_labels == 0) & (y_true == 1))
# 计算敏感性、特异性和准确性
sensitivity = tp / (tp + fn)
specificity = tn / (tn + fp)
accuracy = (tp + tn) / (tp + tn + fp + fn)
return {'Sensitivity': sensitivity, 'Specificity': specificity, 'Accuracy': accuracy}
使用示例:
# 示例数据
y_pred = np.array([0.1, 0.4, 0.6, 0.8])
y_true = np.array([0, 0, 1, 1])
# 计算指定阈值的评价指标
threshold = 0.5
metrics = calculate_metrics(y_pred, y_true, threshold)
print(metrics)
# {'Sensitivity': 1.0, 'Specificity': 0.5, 'Accuracy': 0.5}
在这个示例中,预测结果是y_pred,真实标签是y_true。我们设定了一个阈值为0.5来将预测结果转化为二元类别标签。然后使用calculate_metrics函数计算敏感性、特异性和准确性。最后打印出计算结果。
作者介绍
Q
QCFD
V1