tf.keras实现线性回归

一、单变量线性回归

单变量线性回归算法(比如,x代表学历,f(x)代表收入)
则可以列出:
f(x) = ax + b这个式子来反映学历与收入的关系。
我们使用f(x)这个函数来映射输入特征和输出值。

二、问题分析

预测目标:使得预测函数f(x)与真实值之间的整体误差最小。
如何定义误差最小呢?
这个时候就需要使用到损失函数。
比如说使用均方差作为作为损失函数。也就是预测值和真实值之间差的平方取均值。y代表实际的收入,找到合适的a和b,使得(f(x)-y)^2的值,越小越好,越小就说明预测的收入和实际的收入就越接近。

注意现在求解的是参数a和b,问题也就转变为如何求解合适的参数a和b?
这个时候就会涉及到模型训练的优化算法。
比如线性回归中常会使用到一种优化算法叫做梯度下降法。

三、梯度下降法

梯度下降法是一种致力于找到函数极值点的算法。
所谓“学习”便是改进模型参数,以便通过大量训练步骤将损失最小化。有了这个概念,将梯度下降法应用于寻找损失函数的极值点便构成了依据输入数据的模型学习。
梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导:
在这里插入图片描述
梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向哪个方向移动,函数值可以增长。

四、学习速率

学习速率是一种超参数或对模型的一种手工可配置的设置需要为它指定正确的值。如果学习速率太小,则找到损失函数极小值点时可能需要许多轮选代;如果太大,则算法可能会“跳过”极小值点并且因周期性的“跳跃”而永远无法找到极小值点。

五、线性回归示例代码

代码运行平台为jupyter-notebook,文章中的代码块,也是按照jupyter-notebook中的划分顺序进行书写的,运行文章代码,直接分单元粘入到jupyter-notebook即可。

1.导入第三方库

import matplotlib.pyplot as plt
import tensorflow as tf
import pandas as pd

2.读取数据

data = pd.read_csv("/content/drive/MyDrive/learing_data/Income.csv")
data

在这里插入图片描述

3.绘制学历和收入的散点图

%matplotlib inline
plt.scatter(data.Education,data.Income)

在这里插入图片描述
可以看到学历和收入看上去好像呈一个线性的关系,可以拟合出来一条直线。

4.搭建线性网络模型

model = tf.keras.models.Sequential()
# 搭建一个全连接层,输入为1维的(因为只有1列输入数据),输出也为1维。
model.add(tf.keras.layers.Dense(1,input_shape=(1,)))  # 相当于构建方程 f(x) = ax + b
# 查看网络模型结构
model.summary()

在这里插入图片描述
从上面可以看到Param是2,也就是说全连接层(Dense层)有两个参数,一个参数是权重(a,相当于是f(x)=ax+b中的a),另一个参数是偏置(b,相当于是f(x)=ax+b中的b)。

5.模型训练

x = data.Education
y = data.Income
# 使用adam梯度下降法作为优化器,使用均方误差mse作为损失函数
model.compile(optimizer="adam",loss="mse")
model.fit(x,y,epochs=50)

6.模型预测

model.predict(x)#预测现有值。
model.predict(pd.Series([20]))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布兹学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值