使用Optuna调优LGBM超参数时报y应为1d数组错误(y为pandas Series)
问题修复方案
错误的触发点是roc_auc_score的入参格式错误,和你原本的y变量类型无关:
二分类任务中,LGBMClassifier.predict_proba()返回的是形状为(样本数量, 2)的二维数组,分别对应样本属于类别0、类别1的预测概率,而roc_auc_score计算二分类AUC时,要求传入的预测值是仅包含正类概率的一维数组,你直接传入完整的二维预测结果就会触发维度报错。
具体修改方法
找到代码中的对应行:
cv_scores[idx] = roc_auc_score(y_test, preds)
修改为如下内容即可正常运行:
# 仅提取正类(类别1)的预测概率传入roc_auc_score cv_scores[idx] = roc_auc_score(y_test, preds[:, 1])
内容的提问来源于stack exchange,提问作者Laughingtree
相关产品推荐
相关产品推荐

