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

解决IBM员工流失数据集建模中的ValueError:预期2D数组却得1D数组

IBM员工流失数据集Logistic回归错误解决:Expected 2D array, got 1D array instead
  • 核心错误原因:logreg.score()的参数顺序完全搞反了。sklearn中模型的score()方法要求第一个参数是特征输入(必须是2D数组,比如你的X_test),第二个参数是真实标签(1D数组,比如y_test)。你当前传入的logreg.score(y_pred, y_test),把1D的预测结果当成了特征输入,直接触发维度不匹配的错误。

  • 修正代码:将score行替换为:

logreg.score(X_test, y_test)
  • 哑变量处理简化建议:你的现有哑变量生成步骤冗余,可以优化成更简洁的逻辑:
# 直接对原数据集生成分类列的哑变量,保留数值列,drop_first避免多重共线性
dummy_df = pd.get_dummies(df, columns=["BusinessTravel", "Department", "EducationField", 
                                       "Gender", "JobRole", "OverTime", "MaritalStatus"], 
                           drop_first=True)
# 直接将Attrition转换为数值标签(Yes=1,No=0)
dummy_df["Attrition"] = dummy_df["Attrition"].apply(lambda x: 1 if x == "Yes" else 0)

这样省去了复制DataFrame、concat后删除重复列的繁琐步骤,逻辑更清晰。

  • 准确率计算的另一种方式:如果想手动计算预测准确率,可使用metrics.accuracy_score,参数顺序是真实标签在前,预测标签在后:
metrics.accuracy_score(y_test, y_pred)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:46:05