#python #tensorflow #keras #deep-learning
Вопрос:
Я пытаюсь представить матрицу путаницы после модели глубокого обучения, но есть ошибка, как я могу ее исправить?
Y_pred = model.predict(X_val) Y_pred_classes = np.argmax(Y_pred,axis = 1) Y_true = np.argmax(y_val,axis = 0) confusion_mtx = confusion_matrix(Y_true, Y_pred_classes) f,ax = plt.subplots(figsize=(8, 8)) sns.heatmap(confusion_mtx, annot=True, linewidths=0.01,cmap="Greens",linecolor="gray", fmt= '.1f',ax=ax) plt.xlabel("Predicted Label") plt.ylabel("True Label") plt.title("Confusion Matrix") plt.show()
TypeError: Singleton array 1 cannot be considered a valid collection.
Это результат Y_true
и Y_pred_classes
Y_true
1
Y_pred_classes
array([0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0])
Ответ №1:
Вам нужно удалить этот код #Y_true = np.argmax(y_val,axis = 0)
, так как Y_true
он уже содержит фактические значения меток, вам не нужно находить максимально возможное число. Вы можете напрямую использовать Y_true
в confusion_matrix()
.
Пожалуйста, найдите ниже реплицированные и исправленные фрагменты кода:
Y_pred = model.predict(X_val) Y_pred_classes = np.argmax(Y_pred,axis = 1) #Y_true = np.argmax(y_val,axis = 0) confusion_mtx = confusion_matrix(Y_true, Y_pred_classes) f,ax = plt.subplots(figsize=(8, 8)) sns.heatmap(confusion_mtx, annot=True, linewidths=0.01,cmap="Greens",linecolor="gray", fmt= '.1f',ax=ax) plt.xlabel("Predicted Label") plt.ylabel("True Label") plt.title("Confusion Matrix") plt.show()