单变量logistics回归_Tensoflow实战-单变量线性回归

使用Tensorflow进行算法设计与训练的核心步骤:

·(1)准备数据

·(2)构建模型

·(3)训练模型

·(4)进行训练

以上步骤就是使用Tensorflow进行算法设计与训练的核心步骤,贯穿后面介绍的具体实战。

下面以一个单变量的线性方程来展示:

方程:Y =w * x + b

数据集:人工数据集,随机生成一个近似采样随机分布,w= 2, b=1,噪声最大振幅0.4

fcd266eefee192ba01a302200b8fc7ef.png

人工数据集

首先,导入相关库

f7083bc9f6bbe48ce73d0ce13c032abd.png

(1)准备数据

直接采用np生成等差数列的方法,生成100个点,每个点的取值在-1,1之间,

构造满足这个函数的x和y的同时加入一些不满足方程的噪声.

5246a837b73f6f66e69026d5a643825a.png

(2)构建模型

·定义模型,实现前行计算

·创建待优化变量,Tensorflow变量的声明函数是tf.Variable,tf.Variable的作用是保存和更新参数,变量的初始值可以是随机数、常数,或是通过其他变量的初始值计算得到

·定义损失函数,损失函数用于描述预测值与真实值之间的误差,从而指导模型收敛方向;

常见损失函数:均方差(Mean Square Error, MSE)和交叉熵(cross-entropy)

39b0c81d3cb4d258cb3fc0de92ad78df.png

(3)训练模型

·设置训练超参数,training_epochs 、learning_rate ;学习率的作用:控制参数更新的幅度。如果学习率设置过大

,可能导致参数在极值附近来回摇摆,无法保证收敛。如果学习率设置过小,虽然能保证收敛,但优化速度会大大降低,我们需要更多迭代次数。

·定义计算梯度函数,计算样本数据[x,y]在参数[w,b]点上的梯度

6de944896a3086cc091d4ef28d01906c.png

·执行训练(SGD)

9f3fb5c1a307c590a7cbdb71e04e6211.png

执行训练代码

106c711a6af3154b8a85e7451d877dbd.png

损失函数值变化

cc96fef4684c1b9a059b8cb39c5892b4.png

迭代训练结果图

从上图可以看出,本案例所拟合的模型较简单,训练5轮之后已经接近收敛,对于复杂模型,需要更多次训练才能收敛

·显示结果

c66f2ba1ff1b86bea255b7bf46d42aab.png

w,b最终取值

结果可视化

9fa8fc44e71cebe74c4f45570b6a7a27.png

数据分布(蓝色点)与模型(红线)可视化

(4)进行训练

99ea7663f5b056b208c2d7aa61b8b1ba.png

测试结果

从输出结果看,预测值与目标值误差极小,本次预测成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值