用python实现recall和precision
时间: 2023-09-22 15:05:41 浏览: 98
python 精准率和召回率
可以使用以下代码实现recall和precision:
```python
def recall(true_positives, false_negatives):
"""
计算召回率
"""
return true_positives / (true_positives + false_negatives)
def precision(true_positives, false_positives):
"""
计算精确度
"""
return true_positives / (true_positives + false_positives)
```
其中,`true_positives` 表示真正例的数量,`false_positives` 表示假正例的数量,`false_negatives` 表示假反例的数量。
例如,对于一个二分类模型,可以使用以下代码计算其recall和precision:
```python
# 模型预测结果
y_pred = [1, 0, 1, 1, 0, 1, 0, 0, 1, 1]
# 真实标签
y_true = [1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
# 计算真正例、假正例和假反例的数量
true_positives = sum([1 for i in range(len(y_true)) if y_true[i] == 1 and y_pred[i] == 1])
false_positives = sum([1 for i in range(len(y_true)) if y_true[i] == 0 and y_pred[i] == 1])
false_negatives = sum([1 for i in range(len(y_true)) if y_true[i] == 1 and y_pred[i] == 0])
# 计算召回率和精确度
recall_score = recall(true_positives, false_negatives)
precision_score = precision(true_positives, false_positives)
print("Recall: ", recall_score)
print("Precision: ", precision_score)
```
输出结果如下:
```
Recall: 0.6
Precision: 0.6666666666666666
```
这表示模型的召回率为 0.6,精确度为 0.67。
阅读全文