keras 混淆矩阵“Sequential”对象没有属性“predict_classes”[重复]时出错

zynd9foi  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(227)

此问题已在此处有答案

Keras - How to use argmax for predictions(1个答案)
昨天关门了。
我试着运行这段代码来输出混淆矩阵。但是当我运行的时候有一个错误。它应该出来矩阵混淆图和它的标签。
验证码:

#Output confusion matrix
import numpy as np
def print_confusion_matrix(y_true, y_pred):
    cm = confusion_matrix(y_true, y_pred)
    print('True positive = ', cm[0][0])
    print('False positive = ', cm[0][1])
    print('False negative = ', cm[1][0])
    print('True negative = ', cm[1][1])
    print('\n')
    df_cm = pd.DataFrame(cm, range(2), range(2))
    sn.set(font_scale=1.4) # for label size
    sn.heatmap(df_cm, annot=True, annot_kws={"size": 16}) # font size
    plt.ylabel('Actual label', size = 20)
    plt.xlabel('Predicted label', size = 20)
    plt.xticks(np.arange(2), ['Fake', 'Real'], size = 16)
    plt.yticks(np.arange(2), ['Fake', 'Real'], size = 16)
    plt.ylim([2, 0])
    plt.show()

threshold = 0.5
print_confusion_matrix(np.array(Y_val_org).astype(np.int32),(model.predict(X)>threshold).astype(np.int32))

错误:

118/118 [==============================] - 7s 61ms/step
ValueError: Classification metrics can't handle a mix of binary and multilabel-indicator targets

我需要修改什么代码才能使矩阵混乱没有错误?我已经试了几天,但它也不起作用

vc9ivgsu

vc9ivgsu1#

此方法已删除,请参见https://discuss.tensorflow.org/t/sequential-object-has-no-attribute-predict-classes/10157
因此,另一种选择是:

import numpy as np

threshold = 0.5
print_confusion_matrix(np.array(Y_val_org).astype(np.int32), (model.predict(X)>threshold).astype(np.int32))

相关问题