Python 从keras生成器获取真实标签
我想使用创建一个keras模型的混淆矩阵Python 从keras生成器获取真实标签,python,scikit-learn,keras,Python,Scikit Learn,Keras,我想使用创建一个keras模型的混淆矩阵 在训练一个模型之后,我可以用它来获得测试数据集的预测,这给了我y\u pred。如何从数据生成器中获取相应的真值标签,y\u true?生成器。类将以稀疏格式提供观察值。您可能需要密集格式(即一种热编码格式)。您可以通过以下方式获得: import pandas as pd pd.get_dummies(pd.Series(generator.classes)).to_dense() 但是请注意:在生成预测和获取观察到的类之前,必须将生成器的shuff
在训练一个模型之后,我可以用它来获得测试数据集的预测,这给了我
y\u pred
。如何从数据生成器中获取相应的真值标签,y\u true
?生成器。类将以稀疏格式提供观察值。您可能需要密集格式(即一种热编码格式)。您可以通过以下方式获得:
import pandas as pd
pd.get_dummies(pd.Series(generator.classes)).to_dense()
但是请注意:在生成预测和获取观察到的类之前,必须将生成器的shuffle
属性设置为False
,否则您的预测和观察将无法对齐 创建您自己的或内置的数据生成器后,使用经过培训的模型进行预测:
true_labels = data_generator.classes
predictions = model.predict_generator(data_generator)
sklearn的混淆矩阵需要一个一维标签数组,因此您必须使用np.argmax()
然后您可以直接在混淆矩阵
函数中使用这些变量
cm = sklearn.metrics.confusion_matrix(y_true, y_pred)
您可以使用下面的示例plot\u composition\u matrix()
函数对其进行绘图:
cm = sklearn.metrics.confusion_matrix(y_true, y_pred)