Я пытаюсь установить модель с несколькими линейными регрессиями
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. Основываясь на предложениях, я в настоящее время просто рисую диаграммы рассеяния, такие как зависимая переменная vs. 1-я независимая переменная, а затем вторая независимая переменная и т.д. Я делаю то же самое. Я, возможно, не смогу увидеть линию наилучшего соответствия для полной модели, но я знаю, как она зависит от отдельной переменной
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')
Вы можете попытаться визуализировать, насколько хорошо работает ваша модель, сравнивая фактические и прогнозируемые значения. Предполагая, что наши действительные значения хранятся в 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)