本关任务:填写 python 代码,完成 precision_score 函数和 recall_score 函数分别实现计算精准率和召回率。
时间: 2024-09-12 09:12:06 浏览: 41
在机器学习中,精准率(Precision)和召回率(Recall)是评估分类模型性能的两个重要指标。以下是使用Python实现`precision_score`函数和`recall_score`函数的代码示例:
```python
def precision_score(y_true, y_pred):
"""
计算精准率(Precision)的函数。
参数:
y_true: 真实的标签列表。
y_pred: 预测的标签列表。
返回:
精准率的值。
"""
assert len(y_true) == len(y_pred), "The length of y_true and y_pred must be the same."
true_positive = sum((y_true == y_pred) & (y_pred == 1))
predicted_positive = sum(y_pred == 1)
# 防止除以0
precision = true_positive / (predicted_positive + 1e-10)
return precision
def recall_score(y_true, y_pred):
"""
计算召回率(Recall)的函数。
参数:
y_true: 真实的标签列表。
y_pred: 预测的标签列表。
返回:
召回率的值。
"""
assert len(y_true) == len(y_pred), "The length of y_true and y_pred must be the same."
true_positive = sum((y_true == y_pred) & (y_true == 1))
actual_positive = sum(y_true == 1)
# 防止除以0
recall = true_positive / (actual_positive + 1e-10)
return recall
```
这两个函数的输入参数`y_true`和`y_pred`分别是真实的标签列表和模型预测的标签列表。函数会根据这两个列表计算并返回相应的精准率和召回率。在这两个函数中,使用了一个很小的常数(如`1e-10`)来避免除以零的情况。
需要注意的是,`y_true`和`y_pred`中的元素通常只能是0或1,代表负例和正例。