scikit学习Python逻辑回归中的巨大而奇怪的错误?

scikit学习Python逻辑回归中的巨大而奇怪的错误?,python,pandas,regression,shapes,Python,Pandas,Regression,Shapes,下面的操作涉及Python scikit学习中的逻辑回归 我为您提供了最重要的代码示例: predictions = logistic_regression.predict(X_test) prediction=logistic_regression.predict_proba(X_test)[:,:] prediction=pd.DataFrame(data=predictions, columns=['Prob of Bad credit

下面的操作涉及Python scikit学习中的逻辑回归

我为您提供了最重要的代码示例:

predictions = logistic_regression.predict(X_test)
prediction=logistic_regression.predict_proba(X_test)[:,:]
prediction=pd.DataFrame(data=predictions, 
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])
prediction.head(10)
昨天我得到了符合我期望的代码结果: (表标题不同,但结果相同)

但今天,我完全不知道为什么,当我想再次运行此代码时,我出现了一个错误:

ValueError: Shape of passed values is (300, 1), indices imply (300, 2)
昨天成功,而今天失败,这怎么可能呢?我能做什么? 完整错误屏幕如下:

预测样本如下:

print(predictions)
[11 11 11 10 1 11 11 11 11 11 11 10 1 1 1 1 1 1 10 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

我不希望在表中有1或0,我希望在百分比概率中有1或0,如屏幕中的示例所示

从下面的来源查看预测结束时的同一个表,有相同的代码,它可以工作:
我认为发生错误是因为预测只有一行, 您有两个列名:

prediction=pd.DataFrame(data=predictions, 
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])
根据您提供的kaggle上的代码:

y_pred_prob=logreg.predict_proba(x_test)[:,:]
y_pred_prob_df=pd.DataFrame(data=y_pred_prob, columns=['Prob of no heart disease (0)','Prob of Heart Disease (1)'])
y_pred_prob_df.head()
我认为您应该将代码更改为:

prediction_df = pd.DataFrame(data=prediction,  
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])

小心,应该是预测,而不是预测。

可能是因为第一个值被作为索引?第二列作为第一列,因此第二列缺少数据?最好不要将变量命名得如此相似。你确定
data=predictions
正在使用你想要的变量吗?还有,为什么在预测之后使用
[:,:]
predict()
提供预测类(单列数据),
predict\u probability
提供预测类概率的元组。您的意思是在数据帧调用中有两列。Echoing@user2357112supportsMonica,检查您的变量但昨天它起作用了,它如何可能以及我如何编辑我的代码?它也不起作用了,现在我有错误:ValueError:传递值的形状是(2300),索引暗示(2,2)您之前定义了预测,它是一个2乘2数组。尝试设置另一个名称,它应该在kaggle的源代码的和处的同一个表中工作,有与我相同的代码,它在那里工作: