python 机器学习计算sensitivity和specificity
时间: 2023-06-21 16:18:26 浏览: 116
在机器学习中,我们通常使用混淆矩阵 (confusion matrix) 来计算模型的性能,混淆矩阵是一个 2x2 的矩阵,行表示真实类别,列表示预测类别,其中每个元素表示对应类别的样本数,例如:
| | 预测为正例 | 预测为反例 |
|----------|------------|------------|
| 真实为正例 | TP | FN |
| 真实为反例 | FP | TN |
根据混淆矩阵,可以计算出 sensitivity 和 specificity,代码如下:
```python
from sklearn.metrics import confusion_matrix
def cal_sensitivity_specificity(y_true, y_pred):
cm = confusion_matrix(y_true, y_pred)
TN, FP, FN, TP = cm.ravel()
sensitivity = TP / (TP + FN)
specificity = TN / (TN + FP)
return sensitivity, specificity
```
其中,`y_true` 是真实类别,`y_pred` 是预测类别,可以是 0 或 1 的数组或列表。我们使用 scikit-learn 库的 `confusion_matrix` 函数计算混淆矩阵,然后从中提取出 TP、TN、FP、FN,最后计算出 sensitivity 和 specificity。