我是数据科学新手,正在研究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)