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

train_test_split后样本数不一致,逻辑回归MAE计算报错

问题排查与解决

核心错误原因

你犯了一个逻辑错误:用训练集的预测结果y_pred去和测试集标签y_test计算MAE。

  • y_pred = logReg.predict(X_train) 是对训练集样本做预测,样本数和X_train一致(总样本的80%,即101612条)
  • y_test是测试集的标签,样本数是总样本的20%(25404条)
    两者样本数自然不匹配,触发报错。

为什么test_size=0.5时能运行?因为此时训练集和测试集样本数各占一半,数量相等,所以不会触发样本数不一致的报错,但这依然是逻辑错误——你应该用模型对测试集做预测,再和测试集标签对比评估模型泛化能力,而不是用训练集的预测结果。

修正后的代码步骤

把预测步骤改成对测试集X_test做预测:

# 训练模型并预测测试集
logReg = LogisticRegression(n_jobs=-1)
logReg.fit(X_train, y_train)
y_pred = logReg.predict(X_test)  # 此处改为预测测试集

# 计算MAE
mae = mean_absolute_error(y_test, y_pred)
print("MAE:" , mae)

额外验证建议

如果担心特征和标签划分有问题,可以打印X和y的样本数确认是否一致:

print(f"X样本数: {X.shape[0]}, y样本数: {y.shape[0]}")

只要两者数值相等,就说明特征标签划分没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:55:15