如何将python多元线性回归模型可视化
时间: 2023-12-26 11:05:57 浏览: 226
用Python实现数据可视化
要将多元线性回归模型可视化,可以使用散点图和3D图表。
首先,使用散点图来表示数据点。使用Matplotlib库中的scatter函数来绘制散点图。例如,假设我们有两个自变量x1和x2和一个因变量y,可以使用以下代码创建散点图:
```python
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x2 = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
y = [2, 4, 5, 7, 8, 10, 11, 13, 14, 16]
ax.scatter(x1, x2, y)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_zlabel('y')
plt.show()
```
这将创建一个3D散点图,其中x1和x2是自变量,y是因变量。
接下来,我们可以使用线性回归模型来拟合数据并可视化拟合结果。使用Scikit-learn库来创建线性回归模型。例如,假设我们要拟合以下数据:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
x1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).reshape((-1, 1))
x2 = np.array([5, 6, 7, 8, 9, 10, 11, 12, 13, 14]).reshape((-1, 1))
y = np.array([2, 4, 5, 7, 8, 10, 11, 13, 14, 16])
model = LinearRegression().fit(np.hstack([x1,x2]), y)
r_sq = model.score(np.hstack([x1,x2]), y)
print('coefficient of determination:', r_sq)
print('intercept:', model.intercept_)
print('slope:', model.coef_)
```
这将输出线性回归模型的相关信息。
最后,我们可以使用3D图表来可视化拟合结果。使用Matplotlib库中的plot_surface函数来绘制3D图表。例如,可以使用以下代码创建3D图表:
```python
x1_range = np.arange(1, 11, 0.25)
x2_range = np.arange(5, 14, 0.25)
X1, X2 = np.meshgrid(x1_range, x2_range)
Y = model.intercept_ + model.coef_[0] * X1 + model.coef_[1] * X2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X1, X2, Y, alpha=0.5)
ax.scatter(x1, x2, y)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_zlabel('y')
plt.show()
```
这将创建一个3D图表,其中平面表示线性回归模型的拟合结果,散点表示数据点。
阅读全文