从逻辑回归绘制预测

Posted

技术标签:

【中文标题】从逻辑回归绘制预测【英文标题】:Plotting prediction from logistic regression 【发布时间】:2021-02-27 06:07:59 【问题描述】:

我想在散点图中绘制 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,)

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

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

【问题讨论】:

【参考方案1】:

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

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

混淆矩阵显示有多少标签有正确的预测,有多少是错误的。查看混淆矩阵,您可以计算模型的准确程度。我们可以使用不同的度量标准,例如precision,recall and F1 score。

【讨论】:

感谢您的回答和建议,Rajith。有道理,谢谢。请问用精度值绘制 ROC 是否也有用? ROC 曲线是通过在各种阈值设置下绘制真阳性率 (TPR) 与假阳性率 (FPR) 来创建的。越多,模型的面积就越准确。

以上是关于从逻辑回归绘制预测的主要内容,如果未能解决你的问题,请参考以下文章

使用逻辑回归预测用户是否会购买SUV

《机器学习实战》之逻辑回归--基于Python3--01

机器学习---逻辑回归从初识到应用

SPSS中逻辑回归的预测概率是怎么算的

逻辑回归实例

机器学习基础:理解逻辑回归及二分类多分类代码实践