Logistic Regression生成混淆矩阵提示样本数不一致报错如何解决
错误原因
- 混淆矩阵的作用是对比同一组样本的真实标签和模型预测标签的匹配情况,要求两个入参的样本量完全一致
- 你调用
confusion_matrix时错误传入了训练集标签y_train(共67个样本)和测试集真实标签y_test(共8个样本),两者属于不同的样本分组,样本量天然不匹配,因此触发报错
修正方法
你需要先获取模型对测试集x_test的预测结果,再将测试集的真实标签和预测标签一同传入混淆矩阵函数,修正后的完整代码如下:
from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix # 拆分数据集 x_train, x_test, y_train, y_test = train_test_split(df[["Age"]], df.Spending_Cat, test_size=0.1) # 初始化并训练逻辑回归模型 model = LogisticRegression() model.fit(x_train, y_train) # 生成测试集预测标签 y_pred = model.predict(x_test) # 输出预测结果和模型在测试集上的准确率 print(y_pred) print(model.score(x_test, y_test)) # 传入测试集真实标签、测试集预测标签计算混淆矩阵 print(confusion_matrix(y_test, y_pred))
内容的提问来源于stack exchange,提问作者Mike Jacob
相关产品推荐
相关产品推荐

