19 模型评估与预测之模型预测
在上一篇文章中,我们探讨了如何使用 evaluate
方法对 Keras 模型进行评估。本文将重点讲解如何使用训练好的模型进行预测。模型预测是机器学习工作流中至关重要的一部分,它使我们能够使用模型对新数据进行推理。这一过程通常会涉及到数据预处理、模型输入格式的匹配以及最终的输出解析。让我们深入了解这一过程,并结合一个具体的案例进行讲解。
1. 理解模型预测
在机器学习中,模型预测指的是使用一个已经训练好的模型,对新的、未见过的数据进行分类或回归。在 Keras 中,预测的基本流程非常简单:
- 准备数据:确保输入数据的格式与模型训练时保持一致。
- 调用
predict
方法:使用模型的predict
函数生成预测结果。 - 解析输出:将模型输出转换为可读的格式。
2. 案例准备
假设我们已经训练了一个简单的图像分类模型,用于识别手写数字(例如,MNIST 数据集)。首先简单回顾一下模型的训练过程,然后将重点放在如何对新的数据进行预测。
2.1 模型训练流程
在进行预测之前,我们必须有一个训练好的模型。下面的代码演示了如何构建和训练一个简单的卷积神经网络(CNN)模型:
1 | import numpy as np |
3. 模型预测
现在我们已经有了一个训练好的模型,接下来我们将使用这个模型对测试集中的一些图像进行预测。
3.1 使用 predict
方法
Keras 提供了一个非常直观的 predict
方法,使用方法如下:
1 | # 使用训练好的模型进行预测 |
在这里,我们调用了模型的 predict
方法,并通过 np.argmax
将输出转换为类别标签。predictions
包含了每个测试样本属于各个类别的概率,最终我们选择概率最大的作为预测的类别。
3.2 解析预测结果
预测的输出是一个概率分布,对于图像分类任务,我们需要找到概率最高的类别:
np.argmax(predictions, axis=1)
可以帮助我们取得每个预测样本最高概率对应的类别索引。- 如果需要更详细的信息(如概率值),可以直接查看
predictions
这个数组。
3.3 评价预测结果
为了对预测结果的准确性进行评价,我们可以将模型的预测结果与真实标签进行比较:
1 | correct_predictions = np.sum(np.argmax(predictions, axis=1) == np.argmax(y_test, axis=1)) |
通过计算正确预测的数量与总样本的比例,我们可以得出完整的预测准确率。
4. 小结
本篇文章中,我们详细介绍了 Keras 框架中如何对已经训练好的模型进行预测。我们通过使用手写数字识别的案例,展示了从数据准备到最终解析预测结果的完整流程。接下来,在下一篇文章中,我们将进入更高阶的主题——迁移学习,并探索如何利用预训练模型来提升我们的模型性能。请继续关注我们的系列教程!
19 模型评估与预测之模型预测