[英]How to plot 3D multiple Linear Regression with 2 features using matplotlib?
[英]How do I plot for Multiple Linear Regression Model using matplotlib
我尝试拟合多元线性回归模型
Y= c + a1.X1 + a2.X2 + a3.X3 + a4.X4 +a5X5 +a6X6
如果我的模型只有 3 个变量,我会使用 3D 图来绘制。 我怎么能绘制这个。 我基本上想看看最佳拟合线的样子,或者我应该绘制多个散点图并查看单个变量 Y = a1X1 当所有其他变量为零时的效果并查看最佳拟合线。 这些模型的最佳方法是什么。 我知道不可能可视化更高的维度想知道什么应该是最好的方法。 我迫不及待地想看到最合身的线条
我发现这篇文章更有帮助并关注了
https://stats.stackexchange.com/questions/73320/how-to-visualize-a-fitted-multiple-regression-model 。 根据建议,我目前只是绘制散点图,如因变量与第一个自变量,然后与第二个自变量等,我正在做同样的事情。 我可能看不到完整模型的最佳拟合线,但我知道它是如何依赖于单个变量的
from sklearn.linear_model import LinearRegression
train_copy = train[['OverallQual', 'AllSF','GrLivArea','GarageCars']]
train_copy =pd.get_dummies(train_copy)
train_copy=train_copy.fillna(0)
linear_regr_test = LinearRegression()
fig, axes = plt.subplots(1,len(train_copy.columns.values),sharey=True,constrained_layout=True,figsize=(30,15))
for i,e in enumerate(train_copy.columns):
linear_regr_test.fit(train_copy[e].values[:,np.newaxis], y.values)
axes[i].set_title("Best fit line")
axes[i].set_xlabel(str(e))
axes[i].set_ylabel('SalePrice')
axes[i].scatter(train_copy[e].values[:,np.newaxis], y,color='g')
axes[i].plot(train_copy[e].values[:,np.newaxis],
linear_regr_test.predict(train_copy[e].values[:,np.newaxis]),color='k')
您可以使用 Seaborn 的regplot
函数,并使用预测数据和实际数据进行比较。 这与绘制最佳拟合线不同,但它会向您展示模型的工作情况。
sns.regplot(x=y_test, y=y_predict, ci=None, color="b")
您可以尝试通过比较实际值和预测值来可视化模型的性能。 假设我们的实际值存储在Y
,预测值存储在Y_
,我们可以绘制和比较两者。
import seaborn as sns
ax1 = sns.distplot(Y, hist=False, color="r", label="Actual Value")
sns.distplot(Y_, hist=False, color="b", label="Fitted Values" , ax=ax1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.