机器学习笔记(四)——多元线性回归(sklearn)

本博客仅用于个人学习,不用于传播教学,主要是记自己能够看得懂的笔记(

学习知识、资源和数据来自:机器学习算法基础-覃秉丰_哔哩哔哩_bilibili

所使用数据以及3D画图的说明可见:机器学习笔记(三)——多元线性回归(梯度下降法) - Lcy的瞎bb - 博客园 (cnblogs.com)

同样的,对于多元线性回归,我们同样可以使用sklearn来节省时间与精力。

代码如下:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

data=np.genfromtxt('C:/Users/Lenovo/Desktop/学习/机器学习资料/线性回归以及非线性回归/Delivery.csv',delimiter=',')
x_data=data[:,:-1]
y_data=data[:,-1]

#构建模型
model=LinearRegression()
model.fit(x_data,y_data)

#输出a,b,c
print('a={0},b={1},c={2}'.format(model.intercept_,model.coef_[0],model.coef_[1]))

#画3D图
fig=plt.figure()
ax=fig.add_subplot(111,projection='3d')
x0=x_data[:,0]
x1=x_data[:,1]
ax.scatter(x0,x1,y_data,marker='o',c='r',s=100)
x0,x1=np.meshgrid(x0,x1)
z=model.intercept_+model.coef_[0]*x0+model.coef_[1]*x1
ax.plot_surface(x0,x1,z)
ax.set_xlabel('Miles')
ax.set_ylabel('Num of Deliveries')
ax.set_zlabel('Time')
plt.show()

所得结果:

a=-0.8687014667817081,b=0.06113459879206212,c=0.9234253666954272

posted @ 2021-07-22 18:04  Lcy的瞎bb  阅读(253)  评论(0编辑  收藏  举报