机器学习-线性回归

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()

 

数据可视化如下图:

 

 

posted @ 2020-04-21 16:37  爱飞的大白鲨  阅读(223)  评论(0编辑  收藏  举报