机器学习-线性回归
2.思考线性回归算法可以用来做什么?
3.自主编写线性回归算法 ,数据可以自己造,或者从网上获取。(加分题)
1.机器学习回归算法分类如下图
监督学习可分为回归和分类如下图:
线性回归关系方程以及向量的形式表达如下图:
线性回归损失函数如下图:
最小二乘法之梯度下降,通常使用在面对数据规模十分庞大的任务如下图:
梯度下降算法代码如下:
# -*- coding:utf-8 -*-
# 开发时间:2020/4/21 15:30 # 文件名称:梯度下降算法.py 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] print(_xs) print(_ys) 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 #对w求导 db = 2 * e * 1 #对b求导 w = w - 0.1 * dw b = b - 0.1 * db print('loss={0},w={1},b={2}'.format(loss, w, b))#loss值越小越好 a1.append(i) b1.append(loss) plt.plot(a1, b1) plt.pause(0.1) plt.show()
结果如下图:
数据可视化变换如下图:
2.线性回归算法可以用来:
①预测朝向,面积和房价之间的关系。
②预测学历和工资之间的关系。
③商品种类和销售额之间的关系。
3.自主编写线性回归算法 ,数据可以自己造,或者从网上获取。(加分题)
# -*- coding:utf-8 -*- # 开发时间:2020/4/13 15:40 # 文件名称:线性回归预测.py import pandas as pd from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt df = pd.read_csv(r'.\广州二手房信息.csv',encoding="gb18030")#读取文件 plt.rcParams['font.sans-serif'] = 'SimHei'# 设置中文显示 #散点图 plt.figure(figsize=(12,8)) #设置画布 x = df[['面积(单位:平米)']].values y = df['价格(单位:万元)'].values plt.xlabel('面积(单位:平米)')#X轴 plt.ylabel('价格(单位:万元)')#Y轴 plt.scatter(x,y,color="green",s=5.0)#散点模型 plt.title("广州房屋面积对广州二手房价的影响") #构建线性模型模型 LR_model=LinearRegression() LR_model.fit(x,y) #绘制线性方程 plt.plot(x, LR_model.predict(x),color="blue") plt.xlabel('面积(单位:平米)') plt.ylabel('价格(单位:万元)') plt.title('广州房屋面积对广州二手房价的影响') plt.show()
数据可视化如下图: