5.线性回归算法
1.本节重点知识点用自己的话总结出来,可以配上图片,以及说明该知识点的重要性
2.思考线性回归算法可以用来做什么?(大家尽量不要写重复)
3.自主编写线性回归算法 ,数据可以自己造,或者从网上获取。(加分题)
第一题
①机器学习分类
②了解回归算法
③回归和分类的区别
④线性回归模型
⑤损失函数
⑥梯度下降算法
import random import time import matplotlib.pyplot as plt _xs = [0.1 * x for x in range(0, 10)] _ys = [12 * i + 4 for i in _xs] w = random.random() b = random.random() a1 = [] b1 = [] for i in range(100): for x, y in zip(_xs, _ys): o = w * x + b e = (o - y) loss = e ** 2 dw = 2 * e * x db = 2 * e * 1 w = w - 0.1 * dw b = b - 0.1 * db print('loss={0},w={1},b={2}'.format(loss, w, b)) a1.append(i) b1.append(loss) plt.plot(a1, b1) plt.pause(0.1) plt.show()
第二题
①预测工作经验和工资的关系。
②预测受教育程度和工资的关系。
第三题
from sklearn.datasets import load_boston from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt data=load_boston() data_all=data['data'] x=data_all[:,5:6] y=data['target'] model_LR=LinearRegression() model_LR.fit(x,y) print('模型的权值:',model_LR.coef_,'截距项:',model_LR.intercept_) pre=model_LR.predict(x) #使用可视化的方式对比拟合出的线性回归方程与真实房价的分布情况 plt.scatter(x,y) #真实房价的分布 plt.plot(x,pre,c='r')#拟合出的线性回归方程 plt.legend(['real','pre'])
权值和截距项:
可视化: