基于Keras的已训练预测模型如何用新数据xnew预测y值?
如何用训练好的Keras模型预测新数据的y值
嗨,这事儿其实挺简单的,核心就是用Keras模型自带的predict()方法来完成!我给你一步步拆解清楚:
1. 先确保新数据xnew的「格式和预处理」和训练数据完全一致
这一步绝对不能偷懒,不然预测结果大概率会跑偏:
- 你的模型输入形状是
(4,),意味着每个样本必须包含4个特征,所以xnew的整体形状得是(n_samples, 4)(n_samples是你新数据的样本数量)。 - 如果训练时你对xtrn做了预处理(比如标准化、归一化、类别编码等),一定要用和训练时完全相同的规则处理xnew。比如训练时用
StandardScaler()拟合了xtrn,那xnew只能用这个scaler的transform()方法,绝对不能重新对xnew做fit操作!
2. 调用模型的predict()方法获取预测结果
直接把处理好的xnew传入模型的predict()方法就行,它会自动完成从输入层到输出层的前向计算,输出对应的预测y值:
# 假设xnew已经处理完毕,形状符合模型输入要求 y_pred = model.predict(xnew)
3. 根据任务类型处理预测结果
- 如果是回归任务:
y_pred直接就是预测的连续数值,不用额外处理。 - 如果是多分类任务:
y_pred是每个样本对应各类别的概率(假设输出层用了softmax激活),你可以用numpy.argmax()取出概率最高的类别标签:import numpy as np y_pred_classes = np.argmax(y_pred, axis=1) - 如果是二分类任务:
y_pred是样本属于正类的概率(假设输出层用了sigmoid激活),你可以设定一个阈值(比如0.5)转换为0/1标签:y_pred_classes = (y_pred > 0.5).astype(int)
简单来说,你要把xnew输入到模型的predict()方法里,这个方法会帮你把数据喂进模型的输入层,经过所有你搭建的Dense层计算,最终从输出层得到预测结果~
内容的提问来源于stack exchange,提问作者Tia
相关产品推荐
相关产品推荐

