def plot_confuse(model, x_val, y_val): predictions = model.predict_classes(x_val) truelabel = y_val.argmax(axis=-1) # 将one-hot转化为label conf_mat = confusion_matrix(y_true=truelabel, y_pred=predictions) plt.figure() plot_confusion_matrix(conf_mat, range(np.max(truelabel) + 1))
时间: 2024-03-06 17:46:58 浏览: 145
如果你正在使用Keras的Sequential模型,那么你需要使用predict()方法获取模型的预测结果,如下所示:
```python
import numpy as np
# 假设你的模型是一个Sequential对象,名为model
predictions = model.predict(x_val)
predicted_classes = np.argmax(predictions, axis=1)
truelabel = np.argmax(y_val, axis=1) # 将one-hot编码转化为标签形式
conf_mat = confusion_matrix(y_true=truelabel, y_pred=predicted_classes)
plt.figure()
plot_confusion_matrix(conf_mat, classes=range(np.max(truelabel) + 1))
```
这个代码将使用model的predict()方法获取模型的预测结果predictions,然后使用numpy.argmax()函数获取预测结果的类别predicted_classes。同时,使用numpy.argmax()函数将y_val从one-hot编码转化为标签形式,并保存在truelabel中。接下来,使用sklearn库中的confusion_matrix()函数计算混淆矩阵,并将其保存在conf_mat中。最后,使用自定义的plot_confusion_matrix()函数绘制混淆矩阵图。需要注意的是,classes参数应该是类别的列表,而不是类别标签的数组。
阅读全文