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

MLB球员数据预测后MinMaxScaler反缩放报错求助

MLB球员数据预测项目:MinMaxScaler反缩放维度不匹配问题解决

项目背景

我正在开展1970-2022年MLB球员数据预测项目,拥有两个数据集:

  • 击球手数据集:20个特征,预测5项数据
  • 投手数据集:25个特征,预测6项数据
    当前使用决策树模型,后续计划尝试线性回归与LSTM模型。

预处理流程与错误场景

预处理阶段先移除无关列:

remove_bat_cols = ['Name', 'Tm', 'Year', 'Nxt_BA', 'Nxt_RBI', 'Nxt_HR', 'Nxt_BB', 'Nxt_SO']
remove_pitch_cols = ['Name', 'Tm', 'Year', 'Nxt_ERA', 'Nxt_SO', 'Nxt_WHIP', 'Nxt_BB', 'Nxt_W', 'Nxt_SV']

bat_cols = batting.columns[~batting.columns.isin(remove_bat_cols)]
pitch_cols = pitching.columns[~pitching.columns.isin(remove_pitch_cols)]

随后使用MinMaxScaler缩放数据,尝试反缩放时触发错误:

scaler = MinMaxScaler()
batting.loc[:, bat_cols] = scaler.fit_transform(batting[bat_cols])
pitching.loc[:, pitch_cols] = scaler.fit_transform(pitching[pitch_cols])

# 反缩放尝试
batting.loc[:, bat_cols] = scaler.inverse_transform(batting[bat_cols])
pitching.loc[:, pitch_cols] = scaler.inverse_transform(pitching[pitch_cols])

错误信息:

ValueError: operands could not be broadcast together with shapes (26768,29) (31,) (26768,29) 

尝试添加预测列、仅处理预测列,仍出现相同错误。


问题根源

你使用了同一个MinMaxScaler实例先后对击球手(20个特征)和投手(25个特征)的数据执行fit操作。scaler的内部参数(如min_、scale_)会在第二次fit时被覆盖,变为对应投手数据集的25个特征维度。后续用该scaler反缩放击球手的20维数据时,就会出现维度不匹配的广播错误。

解决方法

为击球手和投手分别创建独立的Scaler实例,各自维护对应数据集的缩放参数:

1. 初始化独立Scaler

scaler_bat = MinMaxScaler()
scaler_pitch = MinMaxScaler()

2. 分别执行缩放

# 处理击球手数据
batting.loc[:, bat_cols] = scaler_bat.fit_transform(batting[bat_cols])
# 处理投手数据
pitching.loc[:, pitch_cols] = scaler_pitch.fit_transform(pitching[pitch_cols])

3. 对应执行反缩放

# 反缩放击球手数据
batting.loc[:, bat_cols] = scaler_bat.inverse_transform(batting[bat_cols])
# 反缩放投手数据
pitching.loc[:, pitch_cols] = scaler_pitch.inverse_transform(pitching[pitch_cols])

额外验证步骤

执行前可先确认特征列长度,确保与数据集维度匹配:

print(f"击球手特征列数量:{len(bat_cols)}")  # 应输出20
print(f"投手特征列数量:{len(pitch_cols)}")    # 应输出25

通过这种方式,每个scaler仅对应自身数据集的维度,即可避免广播不匹配的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:27:47