线性回归模型中如何正确使用.predict()方法完成预测
线性回归模型predict方法使用答疑
.predict()不是布尔匹配、查表类的逻辑,不会遍历原始数据集找「出发延误等于15分钟」的现有样本再返回对应到达延误值。它的核心作用是基于训练阶段拟合得到的线性关系式(即到达延误 = 模型系数 * 出发延误 + 模型截距),接收传入的自变量(出发延误)数值,直接计算输出模型给出的预测结果。- 你提到的写法
arr_dep_model.predict(y)无法得到目标结果:此处传入的y是训练集里全部的出发延误数据,执行后返回的是模型对所有训练样本的到达延误拟合值,不是出发延误15分钟对应的单条预测结果。 - 你最初设想的for循环+if判断逻辑本质是原始数据查表,拿到的是数据集中恰好出现过的、出发延误15分钟的样本真实到达延误值,不属于模型预测的范畴,和训练线性回归挖掘通用规律、对任意输入值做预测的逻辑完全不同。
预测出发延误15分钟对应到达延误的正确写法
scikit-learn所有模型的predict接口,要求传入的自变量输入必须是(待预测样本数, 特征数)形状的二维结构,和训练时传入的自变量维度保持一致。你训练时已经把出发延误处理成了(-1, 1)的二维结构,预测单值15时按如下方式调用即可:
# 构造输入:1个待预测样本,特征值为出发延误15分钟 pred_result = arr_dep_model.predict([[15]])
如果直接传入数值15或者一维数组[15],会触发维度不匹配的报错,必须写成两层列表的二维形式。
如果需要同时预测多个出发延误值(比如10分钟、15分钟、20分钟),直接按格式扩展输入即可,接口会按输入顺序返回对应预测值:
# 同时预测3个出发延误值对应的到达延误 multi_pred_result = arr_dep_model.predict([[10], [15], [20]])
内容的提问来源于stack exchange,提问作者FutureDataScientist
相关产品推荐
相关产品推荐

