填写python代码,完成AUC函数实现计算AUC。
时间: 2024-05-03 07:22:18 浏览: 130
以下是Python代码实现AUC计算的函数:
```python
import numpy as np
def auc(y_true, y_score):
"""
计算AUC值
:param y_true: 真实标签,数组或列表
:param y_score: 预测得分,数组或列表
:return: AUC值
"""
# 转换为numpy数组
y_true = np.array(y_true)
y_score = np.array(y_score)
# 按照预测得分从大到小排序
sorted_indices = np.argsort(y_score)[::-1]
y_true = y_true[sorted_indices]
# 计算正负样本的数量
n_pos = np.sum(y_true == 1)
n_neg = np.sum(y_true == 0)
# 计算所有正样本的排名之和
rank_sum = np.sum(np.arange(len(y_true))[y_true == 1])
# 计算AUC值
auc_value = (rank_sum - n_pos * (n_pos + 1) / 2) / (n_pos * n_neg)
return auc_value
```
使用示例:
```python
y_true = [1, 0, 1, 0, 1, 0]
y_score = [0.9, 0.8, 0.7, 0.6, 0.5, 0.4]
print(auc(y_true, y_score)) # 输出:0.75
```
阅读全文