【问题标题】:Keras - How to visualize confusion matrix, when using validation_splitKeras - 使用validation_split时如何可视化混淆矩阵
【发布时间】:2018-08-30 14:54:48
【问题描述】:

我已经训练了一个模型并在 fit 方法上使用了validation_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 完成的,所以我没有可用的测试集。如何在没有测试集的情况下绘制混淆矩阵?

【问题讨论】:

    标签: machine-learning scikit-learn keras


    【解决方案1】:

    根据the documentation of fit()

    validation_split:在 0 和 1 之间浮动。训练数据的分数 用作验证数据。该模型将区分这部分 的训练数据,不会对其进行训练,并将评估损失 以及每个时期结束时有关此数据的任何模型指标。这 验证数据是从 x 和 y 数据中的最后一个样本中选择的 在洗牌之前提供。

    因此您可以通过获取 X 的最后 20% 来轻松地自己计算验证数据。

    source code 似乎正是这样做的:

           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))
    

    先得到分裂指数(样本数*0.8),然后保留以下部分作为验证。

    【讨论】:

    • 谢谢,我去看看
    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2014-07-16
    • 2018-08-06
    • 1970-01-01
    • 2021-10-01
    • 2014-01-22
    • 2019-05-26
    • 2018-11-22
    相关资源
    最近更新 更多