Я хочу рассчитать оценку auc roc для нет бинарных классификаторов, я, кажется, не нашел примера в scikit-learn. есть идеи как это сделать?вычислить auc roc для без бинарных классификаторов (scikit-learn)
благодарит
Я хочу рассчитать оценку auc roc для нет бинарных классификаторов, я, кажется, не нашел примера в scikit-learn. есть идеи как это сделать?вычислить auc roc для без бинарных классификаторов (scikit-learn)
благодарит
мультиклассируют АУК СОХ может быть достигнуто либо путем расчета кривой для каждого класса независимо друг от друга или суммирования значений между классами.
Вы можете найти более подробную информацию here, но ниже я также прикрепить код для построения различных кривых (код пришел из ссылки прилагается):
# Compute macro-average ROC curve and ROC area
# First aggregate all false positive rates
all_fpr = np.unique(np.concatenate([fpr[i] for i in range(n_classes)]))
# Then interpolate all ROC curves at this points
mean_tpr = np.zeros_like(all_fpr)
for i in range(n_classes):
mean_tpr += interp(all_fpr, fpr[i], tpr[i])
# Finally average it and compute AUC
mean_tpr /= n_classes
fpr["macro"] = all_fpr
tpr["macro"] = mean_tpr
roc_auc["macro"] = auc(fpr["macro"], tpr["macro"])
# Plot all ROC curves
plt.figure()
plt.plot(fpr["micro"], tpr["micro"],
label='micro-average ROC curve (area = {0:0.2f})'
''.format(roc_auc["micro"]),
color='deeppink', linestyle=':', linewidth=4)
plt.plot(fpr["macro"], tpr["macro"],
label='macro-average ROC curve (area = {0:0.2f})'
''.format(roc_auc["macro"]),
color='navy', linestyle=':', linewidth=4)
colors = cycle(['aqua', 'darkorange', 'cornflowerblue'])
for i, color in zip(range(n_classes), colors):
plt.plot(fpr[i], tpr[i], color=color, lw=lw,
label='ROC curve of class {0} (area = {1:0.2f})'
''.format(i, roc_auc[i]))
plt.plot([0, 1], [0, 1], 'k--', lw=lw)
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Some extension of Receiver operating characteristic to multi-class')
plt.legend(loc="lower right")
plt.show()