如何将 sklearn 的分类报告用于 keras 模型?

How to use classification report from sklearn for keras models?

所以我写了一个网络,其中包含以下内容用于多class class化: -y_labels 转换为 to_categorical -最后一层使用一个带有 3 个神经元的 sigmoid 函数作为我的 classes -模型编译使用 categorical_crossentropy 作为损失函数 所以我用了

 model.predict_classes(x_test)

然后我将其用作

   classification_report(y_test,pred)

y_test 的形式为 to_categorical 我收到以下错误:

ValueError: Mix type of y not allowed, got types set(['binary', 'multilabel-indicator'])

我的问题是我怎样才能将它转换回来以便按原样使用它?

错误只是表明 y_testpred 是不同的类型。检查 multiclass.py 中的函数 type_of_target。如此处所示,y 之一是 classes 的指示符,另一个是 class 向量的指示符。您可以通过打印形状 y_test.shape , pred.shape 来推断哪一个是什么。

此外,由于您使用的是 model.predict_classes 而不是 model.predict,因此 model.predict_classes 的输出将只是 classes 而不是 class 向量。

因此,您需要通过以下方式转换其中之一:

# class --> class vector
from keras.utils import np_utils
x_vec = np_utils.to_categorical(x, nb_classes)

# class vector --> class 
x = x_vec.argmax(axis=-1)