You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python的NFL胜场线性回归预测:如何获取32支球队的预测值

解决NFL新赛季32支球队胜场预测的调整方案

当前代码得到128个预测值的原因是:你用train_test_split把2003-2023年的所有球队赛季样本(每支球队每年算一个样本)按20%的比例拆分出了测试集,这128个值是测试集中历史赛季球队的胜场预测,并非新赛季32支球队的结果。要得到目标结果,需要调整如下:

核心思路

训练好模型后,用新赛季32支球队的对应特征数据作为输入,而非历史测试集数据,就能得到32个匹配的预测值。

具体调整步骤

1. 准备新赛季特征数据

首先明确你训练模型时用到的特征(即nfl.drop('wins', axis=1)包含的所有列,比如上赛季进攻码数、防守失分、休赛期引援数据等),然后收集新赛季32支球队的这些特征数据,整理成形状为(32, 特征数量)的数组或DataFrame,命名为X_new。

2. 修改代码完成预测

保留模型训练逻辑(如需验证模型性能可保留train_test_split,否则可直接用全部历史数据训练),新增对新赛季数据的预测:

# 加载历史数据集
nfl = ... # 替换为你的数据集加载代码

# 分离历史特征与目标变量
X = nfl.drop('wins', axis=1)
y = nfl['wins']

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y) # 若需验证模型,可改用X_train训练,不影响新赛季预测

# 准备新赛季32支球队的特征数据
# X_new = ... # 在这里填充整理好的新赛季特征数据

# 生成新赛季胜场预测
new_season_predictions = model.predict(X_new)
print(new_season_predictions.shape) # 输出应为(32,),对应32支球队

3. 关键注意事项

  • 特征一致性:新赛季数据的特征必须和训练时的特征完全匹配,包括数量、顺序、数据类型。
  • 特征缩放(若有):如果训练前对历史特征做了标准化/归一化处理(比如用StandardScaler),新赛季数据必须使用同一缩放器转换,避免预测偏差:
from sklearn.preprocessing import StandardScaler

# 训练时的缩放处理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
model.fit(X_scaled, y)

# 新赛季数据的缩放转换
X_new_scaled = scaler.transform(X_new)
new_season_predictions = model.predict(X_new_scaled)

内容的提问来源于stack exchange,提问作者Tee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:26:07