从逻辑回归绘制预测
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) 来创建的。越多,模型的面积就越准确。以上是关于从逻辑回归绘制预测的主要内容,如果未能解决你的问题,请参考以下文章