Logistic回归 - ValueError:分类指标不能处理连续多输出和二进制目标的混合

时间:2017-11-08 17:04:04

标签: machine-learning scikit-learn logistic-regression

我是一名数据科学菜鸟,正在研究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:分类指标无法处理混合   连续多输出和二进制目标

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

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

  1. 我对测试数据上的预测模型做了一些超级愚蠢和错误的事情。
  2. 功能的价值"年龄"和"票价" (乘客的费用) 票)是花车,其余是整数。
  3. 我哪里错了?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

正如m-dz评论过confusion_matrix expects 2 arrays,在您的代码中,您传递了整个test数据框。

此外,另一个common mistake不尊重参数的 order ,这很重要。

总而言之,你应该要求

confusion_matrix(test['Survived'], predictions)

答案 1 :(得分:-3)

大概你的test由布尔(生或死)组成,而predictions由浮点数组成(预测存活概率)。您应该选择一些阈值,然后根据预测概率是否大于阈值生成布尔值。