#python #machine-learning #scikit-learn
Вопрос:
Метрика ROC-AUC из sklearn может использоваться для задач классификации мультиклассов.
from sklearn.metrics import roc_auc_score
y_true = ["dog", "cat"]
y_score = [[0.2, 0.7, 0.1], [0.1, 0.5, 0.4]]
labels = ["cat", "dog", "mouse"]
roc_auc_score(y_true=y_true, y_score=y_score, labels=labels, multi_class="ovo")
Теперь приведенный выше код работает нормально, потому labels
что параметр, описывающий порядок записей в векторе прогнозирования, упорядочен лексикографически. Но что, если мои прогнозы не упорядочены.
Согласно настройке документации sklearn labels
, поле определяет порядок вектора прогнозирования.
Кроме того, порядок оценок классов должен соответствовать порядку меток, если он указан, или числовому или лексикографическому порядку меток в y_true
Но изменение порядка приводит к ошибке:
from sklearn.metrics import roc_auc_score
y_true = ["dog", "cat"]
y_score = [[0.2, 0.7, 0.1], [0.1, 0.5, 0.4]]
labels = ["dog", "cat", "mouse"]
roc_auc_score(y_true=y_true, y_score=y_score, labels=labels, multi_class="ovo")
>>> ValueError: Parameter 'labels' must be ordered.
Мой вопрос в том, использую ли я labels
параметры неправильно или есть другой способ сообщить метрике ROC-AUC порядок вектора прогнозирования? Или это единственный способ изменить порядок записей вектора прогнозирования?
Спасибо за вашу помощь.