首页 > 解决方案 > 从逻辑回归绘制预测

问题描述

我想在散点图中绘制 y_test 和预测。我使用逻辑回归作为模型。

from sklearn.linear_model import LogisticRegression

vectorizer = CountVectorizer()

X = vectorizer.fit_transform(df['Spam'])
y = df['Label']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=27)

lr = LogisticRegression(solver='liblinear').fit(X_train, y_train)
pred_log = lr.predict(X_test)

我试过如下

## Plot the model

plt.scatter(y_test, pred_log)
plt.xlabel("True Values")
plt.ylabel("Predictions")

我得到了这个:

在此处输入图像描述

我不认为这是我应该期待的。 y_test是 (250,),同样pred_log是 (250,)

我是在考虑绘制错误的变量,还是它们是正确的?我不知道这四个值的情节是什么意思。我本来希望情节中有更多的点,但也许我错了。

如果您需要更多信息,请告诉我。谢谢

标签: pythonmatplotlibscikit-learnlogistic-regression

解决方案


我想你知道 LogisticRegression 是一种分类算法。如果您进行二元分类,它将预测预测类别是 0 还是 1。如果您想可视化模型预制的方式,您应该考虑混淆矩阵。您不能使用散点图来可视化分类结果。

import seaborn as sns
cm = confusion_matrix(y_true, y_pred)
sns.heatmap(cf_matrix, annot=True)

混淆矩阵显示有多少标签有正确的预测,有多少是错误的。查看混淆矩阵,您可以计算模型的准确程度。我们可以使用不同的指标,如精度、召回率和 F1 分数


推荐阅读