sklearn实现多元线性回归 【Python机器学习系列(七)】
sklearn实现多元线性回归 【Python机器学习系列(七)】
文章目录
ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
大家好,我是侯小啾!
今天分享的内容是,通过python的sklearn库实现多元线性回归。
自行准备一组可以做多元回归的数据,以数据文件data.csv
为例,做二元回归。
1.读取数据
首先导入相关库,并获取数据的代码如下:
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.loadtxt("data.csv",delimiter=",")
# 特征:前两列
x_data = data[:, 0:-1]
# 标签:最后一列
y_data = data[:, -1]
2.训练模型
然后开始训练模型,并输出求得的相关参数。并做预测进行测试。
# 训练模型
# 创建线性回归模型对象
model = LinearRegression()
# 训练模型
model.fit(x_data, y_data)
print(f"theta1,theta2:{model.coef_}")
print(f"theta0:{model.intercept_}")
# 构建测试样本
x_test = [[102, 4]]
预测
predict = model.predict(x_test)
print(f"当前 里程为 102 运输次数为 4 预测时长为:{predict}")
输出结果如下图所示:
3.可视化
将回归结果以图像的形式展示出来。
# 可视化散点分布
x_0 = x_data[:, 0]
x_1 = x_data[:, 1]
x_0, x_1 = np.meshgrid(x_0, x_1)
y_hat = model.intercept_ + model.coef_[0]*x_0 + model.coef_[1]*x_1
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x_data[:, 0], x_data[:, 1], y_data)
ax.plot_surface(x_0, x_1, y_hat)
ax.set_xlabel("x1")
ax.set_ylabel("x2")
ax.set_zlabel("y")
plt.show()
拟合结果下图所示:
本次分享就到这里,小啾感谢您的关注与支持!
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ