sklearn 代码 计算灵敏度和特异度
时间: 2024-06-08 15:07:35 浏览: 211
在sklearn中,可以使用classification_report和confusion_matrix函数来计算分类模型的灵敏度和特异度。
首先,导入必要的库和数据:
```python
from sklearn.metrics import classification_report, confusion_matrix
import numpy as np
# 生成随机数据
y_true = np.random.randint(0, 2, size=100)
y_pred = np.random.randint(0, 2, size=100)
```
然后,使用confusion_matrix函数计算混淆矩阵:
```python
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
```
其中,tn表示真阴性(True Negative)、fp表示假阳性(False Positive)、fn表示假阴性(False Negative)、tp表示真阳性(True Positive)。
接着,计算灵敏度和特异度:
```python
sensitivity = tp / (tp + fn)
specificity = tn / (tn + fp)
```
最后,使用classification_report函数生成分类报告,其中包括准确率、F1值、支持数、灵敏度和特异度等指标:
```python
print(classification_report(y_true, y_pred))
```
输出结果类似于:
```
precision recall f1-score support
0 0.52 0.54 0.53 48
1 0.51 0.50 0.50 52
accuracy 0.51 100
macro avg 0.51 0.52 0.51 100
weighted avg 0.51 0.51 0.51 100
```
其中,precision和recall分别表示精确率和召回率,f1-score为F1值,support为支持数。
阅读全文