使用Logistic Regression模型获取类别1预测概率而非0/1分类结果
错误原因
predict_proba默认返回形状为(样本数, 类别数)的二维数组,第0列是类别0的预测概率,第1列是类别1的预测概率,直接全量赋值会触发维度不匹配错误features_X本身已经是列名列表,额外嵌套一层中括号[[features_X]]会被pandas识别为要查询名为整个列表的单字段,触发字段不存在报错
修正后代码
features_X = X.columns # 获取X的列名 # X_test是之前执行train_test_split步骤生成的数组 test_df = pd.DataFrame(columns=features_X, data=X_test) # 仅修改预测行:调用predict_proba取类别1的概率列即可 predictions = grid_logit.predict_proba(test_df[features_X])[:, 1] # 构造存储预测结果的DataFrame submission = pd.DataFrame({'Id':test_df['student_id'],'Answered_correctly':predictions}) # 查看前5行输出 submission.head()
输出样例
| Id | Answered_correctly |
|---|---|
| 12992348 | 0.32 |
| 7268428 | 0.52 |
| 9497321 | 0.65 |
内容的提问来源于stack exchange,提问作者ilymp
相关产品推荐
相关产品推荐

