【问题标题】:Evaluating my model in new unseen dataset在新的看不见的数据集中评估我的模型
【发布时间】:2020-12-24 14:10:49
【问题描述】:

我已经训练了我的模型 (.fit()),并且对测试拆分预测 (.predict()) 的性能感到满意。所以我将我的模型保存到磁盘 (.save('model.h5'))。

现在我得到了新的未见过的数据集,并要求我在这个数据集上评估我已经保存的模型的性能。我不仅需要报告准确性,还需要报告行精度/召回、混淆矩阵等...

然后我加载了我保存的模型 (.load_model('model.h5'))。

问题: 我应该使用什么合适的函数来准备这个新数据集的模型性能报告。我应该使用.predict() 函数还是.evaluate()

【问题讨论】:

    标签: python python-3.x machine-learning keras deep-learning


    【解决方案1】:

    您可以使用 sklearn 的分类报告生成所有相关指标。
    代码:

    preds = model.predict(x1)
    y_pred = np.argmax(preds, axis = 1)
    print(classification_report(y1, y_pred))
    

    输出:

                  precision    recall  f1-score   support
    
               0       0.71      0.08      0.15        59
               1       0.42      0.95      0.58        41
    
        accuracy                           0.44       100
       macro avg       0.57      0.52      0.37       100
    weighted avg       0.59      0.44      0.33       100
    

    您可以查看所有可用的指标here

    model.evaluate():
    此方法将提供您在 compile 方法中定义的损失和指标的值,这通常是不够的。

    【讨论】:

      【解决方案2】:

      如果您想在训练期间获得损失/准确度或任何其他指标 - 您需要 .evaluate() 方法。如果您只需要实际概率或回归值 - 您需要 .predict() 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-09
        • 2016-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-09
        相关资源
        最近更新 更多