Как использовать другой порядок меток для оценки ROC-AUC мультикласса sklearn?

#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 порядок вектора прогнозирования? Или это единственный способ изменить порядок записей вектора прогнозирования?

Спасибо за вашу помощь.