Python y_检验和y_得分之间的roc_auc_得分不匹配

Python y_检验和y_得分之间的roc_auc_得分不匹配,python,keras,auc,Python,Keras,Auc,我试图计算以下各项: auc = roc_auc_score(gt, pr, multi_class="ovr") 其中,gt是一个大小为3470208的列表,包含0到41之间的值(全部int),而pr是一个大小为3470208的列表,每个列表的大小为42,每个位置的概率总和为1 但是,我得到了以下错误: ValueError: Number of classes in y_true not equal to the number of columns in 'y_scor

我试图计算以下各项:

auc = roc_auc_score(gt, pr, multi_class="ovr")
其中,
gt
是一个大小为3470208的列表,包含0到41之间的值(全部int),而
pr
是一个大小为3470208的列表,每个列表的大小为42,每个位置的概率总和为1

但是,我得到了以下错误:

ValueError: Number of classes in y_true not equal to the number of columns in 'y_score'
所以我有点不知所措,因为
y\u true(gt)
中的类数是42,因为我有一个从0到41的整数列表

既然
pr
是一个大小为42的列表,那么我认为它应该可以工作


谢谢你的帮助

确保gt中存在0到41(包括)之间的所有整数

一个简单的例子:

import numpy as np
from sklearn.metrics import roc_auc_score

# results in error:
gt1 = np.array([0,1,3])
pr1 = np.array(
    [[0.1, 0.7, 0.1, 0.1], 
     [0.3, 0.3, 0.2, 0.2], 
     [0.5, 0.1, 0.1, 0.3]]
)
#roc_auc_score(gt1, pr1, multi_class='ovr')


# does not result in error:
gt2 = np.array([0,2,1,3])
pr2 = np.array(
    [[0.1, 0.7, 0.1, 0.1], 
     [0.3, 0.3, 0.2, 0.2], 
     [0.5, 0.1, 0.1, 0.3],
     [0.3, 0.3, 0.2, 0.2]] 
)
#roc_auc_score(gt2, pr2, multi_class='ovr')
因为整数/标签2在gt1中不存在,所以会抛出一个错误。换句话说,gt1(3)中的类数不等于pr1(4)中的列数