在 Python 3 中绘制多元线性回归

数据挖掘 机器学习 Python 麻木的 matplotlib
2021-10-15 06:04:17

所以我正在研究线性回归。到目前为止,我已经设法在线性回归中绘图,但目前我正在使用多元线性回归,我无法绘制它,如果我手动输入值,我可以获得一些结果,但我无法设法绘制它。下面是我的代码块和数据集和错误,我可以改变什么来绘制它?

数据集:

deneyim maas    yas
0.5 2500    22
0   2250    21
1   2750    23
5   8000    25
8   9000    28
4   6900    23
15  20000   35
7   8500    29
3   6000    22
2   3500    23
12  15000   32
10  13000   30
14  18000   34
6   7500    27

代码块:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegression

dataset = pd.read_csv("multiple-linear-regression-dataset.csv",sep = ";")

x = dataset.iloc[:,[0,2]].values
y = dataset.maas.values.reshape(-1,1)

multiple_lr = LinearRegression()
multiple_lr.fit(x,y)

b0 = multiple_lr.intercept_
b1 = multiple_lr.coef_
b2 = b1

multiple_lr.predict(np.array([[10,35],[5,35]]))

array = np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(-1,1)
y_head = multiple_lr.predict(array)

plt.scatter(x,y)
plt.plot(array, y_head, color = "red")
plt.show()

它说ValueError: shapes (16,1) and (2,1) not aligned: 1 (dim 1) != 2 (dim 0)当我尝试编译它时。

2个回答

你不能像这样为多元回归绘制图表。多元回归产生多维图。随着特征的增加,图表的维度也会增加。在您的情况下,X 有两个功能。散点图只对 X 中的一个特征和 y 中的一个类进行论证。尝试只为 X 取一个特征并绘制散点图。通过这样做,您将能够研究每个特征对因变量的影响(我认为这比多维图更容易理解)。我认为您的问题应该解决。

在这里查看我的答案:绘制多元线性回归

问题是你不能一次绘制三个以上的变量,所以你只剩下:

  • 通过将观察到的(或预测的)y 与您的变量或使用 y 作为颜色来观察预期输出与一到三个变量的相互作用。这不适用于三个以上的变量。

  • 绘制模型输出的轮廓。它有一些限制,因为您需要为未绘制的变量修复一个值。它不应该真正适用于两个以上的变量。

因此,一般来说(完全独立于您要使用的模型),您一次只能观察 y 与几个变量的相互作用。不止一个变量,您并不能真正获得良好的可视化效果。根据两个变量绘制 y 可以看到交互作用。使用三个变量(和 y 作为颜色)并不是很好 ihmo,因为你什么都看不到。