计算多分类问题中的 “micro”AUC代码
时间: 2023-09-30 09:04:10 浏览: 54
计算多分类问题中的 `micro` AUC 可以使用 Scikit-learn 的 `roc_auc_score` 函数,设置参数 `multi_class='ovr'`,并且不能指定 `average` 参数。具体代码如下:
```python
from sklearn.metrics import roc_auc_score
# y_true 是真实标签,y_pred 是分类器预测的概率值或决策函数输出值
# y_true 和 y_pred 的形状都是 (n_samples, n_classes),n_samples 表示样本数,n_classes 表示类别数
y_true = ...
y_pred = ...
# 计算每个类别的 AUC 值
aucs = []
for i in range(y_true.shape[1]):
auc = roc_auc_score(y_true[:, i], y_pred[:, i])
aucs.append(auc)
# 计算 micro AUC 值
micro_auc = sum(aucs) / len(aucs)
```
其中,`y_true` 是真实标签,`y_pred` 是分类器预测的概率值或决策函数输出值,它们的形状都是 `(n_samples, n_classes)`,`n_samples` 表示样本数,`n_classes` 表示类别数。在循环中,对于每个类别 i,使用 `roc_auc_score` 函数计算该类别的 AUC 值,然后将所有类别的 AUC 值加起来求平均值,即得到 `micro` AUC 值。
阅读全文