写一个Python代码:导入表格数据并将表格数据进行多元线性回归模型,然后用多种方式进行模型的评估,且用图表示
时间: 2024-02-15 19:02:40 浏览: 29
好的,下面是一个简单的Python代码,可以导入表格数据并进行多元线性回归模型,使用多种方式对模型进行评估,并使用图表表示:
```python
import pandas as pd
import numpy as np
from sklearn import linear_model
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 读取数据
data = pd.read_csv('data.csv')
# 定义自变量和因变量
X = data[['x1', 'x2']]
y = data['y']
# 拟合模型
lm = linear_model.LinearRegression()
model = lm.fit(X, y)
# 对模型进行评估
y_pred = model.predict(X)
# 输出模型参数
print('Coefficients: \n', model.coef_)
print('Intercept: \n', model.intercept_)
print('Mean squared error: %.2f'
% mean_squared_error(y, y_pred))
print('Coefficient of determination: %.2f'
% r2_score(y, y_pred))
# 用图表表示模型
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X['x1'], X['x2'], y, c='r', marker='o')
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_zlabel('y')
# 绘制拟合平面
x1 = np.linspace(X['x1'].min(), X['x1'].max(), 10)
x2 = np.linspace(X['x2'].min(), X['x2'].max(), 10)
X1, X2 = np.meshgrid(x1, x2)
Y = model.intercept_ + model.coef_[0]*X1 + model.coef_[1]*X2
ax.plot_surface(X1, X2, Y, alpha=0.5)
plt.show()
```
其中,`data.csv`是包含表格数据的CSV文件,包含自变量`x1`和`x2`,以及因变量`y`。代码中使用`pandas`库读取数据,使用`sklearn`库的`linear_model`模块进行多元线性回归模型,使用`mean_squared_error`和`r2_score`模块进行模型评估,使用`matplotlib`库绘制图表。最后,使用`mpl_toolkits.mplot3d`模块绘制三维散点图和拟合平面。