敏感性与特异性理解笔记

### 计算敏感性特异性的Python代码 为了计算二分类模型的敏感性特异性,可以利用`sklearn.metrics.confusion_matrix`来获取混淆矩阵,并基于此进一步计算所需的统计量。下面是一个完整的例子,展示了如何实现这一点。 ```python from sklearn import metrics import numpy as np def calculate_sensitivity_specificity(y_true, y_pred): cm = metrics.confusion_matrix(y_true, y_pred) TN = cm[0][0] FP = cm[0][1] FN = cm[1][0] TP = cm[1][1] sensitivity = TP / (TP + FN) # Sensitivity or True Positive Rate specificity = TN / (TN + FP) # Specificity or True Negative Rate return sensitivity, specificity # 假设y_true是真实的标签列表,y_scores是从模型得到的概率分数. y_true = [0, 1, 0, 1, 1, 0, 1, 0] y_scores = [0.1, 0.4, 0.35, 0.8, 0.6, 0.2, 0.7, 0.5] # 将概率转换成预测类别(这里简单地以0.5作为阈值). threshold = 0.5 y_pred = [1 if score >= threshold else 0 for score in y_scores] sensitivity, specificity = calculate_sensitivity_specificity(np.array(y_true), np.array(y_pred)) print(f"Sensitivity: {sensitivity:.2f}, Specificity: {specificity:.2f}") ``` 上述代码定义了一个名为`calculate_sensitivity_specificity`的功能函数,它接受两个参数——实际类标号(`y_true`)和预测类标号(`y_pred`),并返回敏感性特异性这两个性能指标[^1]。 对于更复杂的场景,比如想要获得不同决策边界下的敏感性特异性变化情况,则可以通过调整阈值重新执行预测过程,或者直接使用`roc_curve`工具来一次性取得一系列不同的FPR(假阳性率)和TPR(真阳性率),进而间接推导出特定阈值处的特异性敏感性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值