我是数据科学新手,正在研究Kaggle Titanic dataset。我正在对其进行Logistic回归,以预测测试数据集中的乘客是存活还是死亡。

我同时清理训练数据和测试数据,并对训练数据运行Logistic回归拟合。都好。



train = pd.read_csv('train.csv')
X_train = train.drop('Survived',axis=1)
y_train = train['Survived']
from sklearn.linear_model import LogisticRegression
logmodel = LogisticRegression()
logmodel.fit(X_train,y_train)


然后像这样对测试数据运行预测模型:

test = pd.read_csv('test.csv')
predictions = logmodel.predict(test)


然后,我尝试打印混淆矩阵:

from sklearn.metrics import classification_report, confusion_matrix
print(confusion_matrix(test,predictions))


我收到一条错误消息:


  ValueError:分类指标无法同时处理
  连续多输出和二进制目标


这是什么意思,我该如何解决?

我看到的一些潜在问题是:


我在测试数据上的预测模型做得有些愚蠢和错误。
“年龄”和“票价”功能的价值(乘客的费用
票证)是浮点数,其余为整数。


我要去哪里错了?谢谢你的帮助!

最佳答案

正如m-dz所说,confusion_matrix expects 2 arrays,而在代码中则传递整个test数据帧。

而且,另一个common mistake不遵守自变量的顺序,这很重要。

总而言之,您应该要求



confusion_matrix(test['Survived'], predictions)

09-10 01:47