Specificity混淆矩阵 python 代码
时间: 2023-12-16 19:06:34 浏览: 32
以下是计算混淆矩阵和特异度的Python代码示例:
```python
from sklearn.metrics import confusion_matrix
# 模型预测结果
y_pred = [1, 0, 1, 1, 0, 1, 0, 1, 1, 0]
# 真实标签
y_true = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0]
# 计算混淆矩阵
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
# 计算特异度
specificity = tn / (tn + fp)
print("混淆矩阵:")
print(confusion_matrix(y_true, y_pred))
print("特异度:", specificity)
```
输出结果为:
```
混淆矩阵:
[[2 1]
[1 6]]
特异度: 0.6666666666666666
```
其中,特异度的计算公式为:
特异度 = TN / (TN + FP)
其中,TN 表示真反例数,FP 表示假正例数。
相关问题
敏感性(Sensitivity)、特异性(Specificity) python 代码
在 Python 中,可以使用混淆矩阵(confusion matrix)来计算敏感性和特异性。
下面是一个简单的 Python 代码示例,用于计算二分类问题中的敏感性和特异性:
```python
import numpy as np
def calculate_sensitivity_specificity(y_true, y_pred):
# 计算混淆矩阵
conf_matrix = np.zeros((2, 2))
for i in range(len(y_true)):
true_idx = int(y_true[i])
pred_idx = int(y_pred[i])
conf_matrix[true_idx][pred_idx] += 1
# 计算敏感性和特异性
sensitivity = conf_matrix[1][1] / (conf_matrix[1][1] + conf_matrix[1][0])
specificity = conf_matrix[0][0] / (conf_matrix[0][0] + conf_matrix[0][1])
return sensitivity, specificity
```
其中,`y_true` 是真实标签,`y_pred` 是预测标签。函数首先计算混淆矩阵,然后使用混淆矩阵计算敏感性和特异性。
需要注意的是,这里的代码假设二分类问题中正类标签为 1,负类标签为 0。如果标签不是这样定义的,需要相应地修改代码。
python 机器学习计算sensitivity和specificity
在机器学习中,我们通常使用混淆矩阵 (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。