利用多元线性回归算法探讨下列问题,要求画出散点图、拟合效果图。数据见 data_ex_2.csv 随机抽取的15家大型商场销售的同类产品,计算销售价格y与购进价格x1、销售费用x2之间的关系,并预测当购进价格为779、销售费用为503时销售价格是多少? 代码:
时间: 2024-02-25 12:52:44 浏览: 104
多元线性回归MLR多变量预测模型,多变量输入结构,可以拟合出方程,评价指标包括:R2、MAE、MSE、RMSE等,代码质量极高
5星 · 资源好评率100%
好的,我明白了。由于你提供的数据文件无法访问,我就用一组假数据来演示多元线性回归算法的实现过程吧。
代码如下:
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
import seaborn as sns
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data_ex_2.csv')
# 绘制散点图
sns.scatterplot(x='x1', y='y', data=df)
plt.show()
sns.scatterplot(x='x2', y='y', data=df)
plt.show()
# 构建特征矩阵X和目标向量y
X = df[['x1', 'x2']]
y = df['y']
# 训练模型
lr = LinearRegression()
lr.fit(X, y)
# 输出模型参数
print('Coefficients:', lr.coef_)
print('Intercept:', lr.intercept_)
# 绘制拟合效果图
y_pred = lr.predict(X)
sns.scatterplot(x=y_pred, y=y)
plt.xlabel('Predicted Value')
plt.ylabel('True Value')
plt.show()
# 预测
x_new = np.array([[779, 503]])
y_new = lr.predict(x_new)
print('Predicted Value:', y_new[0])
```
其中,首先用 Pandas 读取数据文件,然后用 Seaborn 绘制散点图来观察数据的分布情况。接着,利用 sklearn 库中的 LinearRegression 类来训练模型,并输出模型参数。然后,再用 Seaborn 绘制拟合效果图来观察模型的表现情况。最后,利用训练好的模型来进行预测,并输出预测结果。
需要注意的是,我们在训练模型时,需要将特征矩阵 X 中的所有特征都放在一起作为输入,而不能只选取其中的一部分特征。这样才能保证模型的准确性。
阅读全文