Machine learning Keras-使用验证时如何可视化混淆矩阵

Machine learning Keras-使用验证时如何可视化混淆矩阵,machine-learning,scikit-learn,keras,Machine Learning,Scikit Learn,Keras,我训练了一个模型,并在拟合方法上使用了验证\u split=0.2,如下所示: history = model.fit(X, Y, validation_split=0.2, epochs=700, batch_size=10, verbose=1,callbacks=[tb, checkpoint]) 最佳权重保存为hdf5文件。由于数据拆分是由Keras validation_split完成的,因此我没有可用的测试集。如何在没有测试集的情况下绘制混淆矩阵?根据: 验证_分割:在0和1之间浮

我训练了一个模型,并在拟合方法上使用了
验证\u split=0.2
,如下所示:

history = model.fit(X, Y, validation_split=0.2, epochs=700, batch_size=10, verbose=1,callbacks=[tb, checkpoint])
最佳权重保存为hdf5文件。由于数据拆分是由Keras validation_split完成的,因此我没有可用的测试集。如何在没有测试集的情况下绘制混淆矩阵?

根据:

验证_分割:在0和1之间浮动。训练数据的分数 用作验证数据。该模型将区分这一部分 将不会在其上进行培训,并将评估损失 以及每个时代结束时该数据的任何模型度量。这个 从x和y数据中的最后一个样本中选择验证数据 在洗牌前提供

因此,您可以通过获得X的最后20%来轻松计算验证数据

政府似乎正是这样做的:

       elif validation_split and 0. < validation_split < 1.:
            do_validation = True
            if hasattr(x[0], 'shape'):
                split_at = int(x[0].shape[0] * (1. - validation_split))
            else:
                split_at = int(len(x[0]) * (1. - validation_split))
            x, val_x = (_slice_arrays(x, 0, split_at), _slice_arrays(x, split_at))
            y, val_y = (_slice_arrays(y, 0, split_at), _slice_arrays(y, split_at))
elif验证\u分割和0.<验证_分割<1:
do_validation=True
如果hasattr(x[0],“shape”):
split_at=int(x[0]。形状[0]*(1.-验证_split))
其他:
拆分=int(len(x[0])*(1.-验证拆分))
x、 val_x=(_切片_数组(x,0,拆分_at),_切片_数组(x,拆分_at))
y、 val_y=(_切片_数组(y,0,split_at),_切片_数组(y,split_at))

它首先得到拆分索引(样本数*0.8),然后保留以下部分作为验证。

谢谢,我会看一看