使用tensorflow实现线性回归


Posted in Python onSeptember 08, 2018

本文实例为大家分享了tensorflow实现线性回归的具体代码,供大家参考,具体内容如下

一、随机生成1000个点,分布在y=0.1x+0.3直线周围,并画出来

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

num_points = 1000
vectors_set = []
for i in range(num_points):
  x1 = np.random.normal(0.0,0.55)
  //设置一定范围的浮动
  y1 = x1*0.1+0.3+np.random.normal(0.0,0.03)
  vectors_set.append([x1,y1])

x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]

plt.scatter(x_data,y_data,c='r')
plt.show()

二、构造线性回归函数

#生成一维的w矩阵,取值为[-1,1]之间的随机数
w = tf.Variable(tf.random_uniform([1],-1.0,1.0),name='W')
#生成一维的b矩阵,初始值为0
b = tf.Variable(tf.zeros([1]),name='b')
y = w*x_data+b

#均方误差
loss = tf.reduce_mean(tf.square(y-y_data),name='loss')
#梯度下降
optimizer = tf.train.GradientDescentOptimizer(0.5)
#最小化loss
train = optimizer.minimize(loss,name='train')


sess=tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

#print("W",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))
for step in range(20):
  sess.run(train)
  print("W=",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))

//显示拟合后的直线
plt.scatter(x_data,y_data,c='r')
plt.plot(x_data,sess.run(w)*x_data+sess.run(b))
plt.show()

三、部分训练结果如下:

W= [ 0.10559751] b= [ 0.29925063] loss= 0.000887708
W= [ 0.10417549] b= [ 0.29926425] loss= 0.000884275
W= [ 0.10318361] b= [ 0.29927373] loss= 0.000882605
W= [ 0.10249177] b= [ 0.29928035] loss= 0.000881792
W= [ 0.10200921] b= [ 0.29928496] loss= 0.000881397
W= [ 0.10167261] b= [ 0.29928818] loss= 0.000881205
W= [ 0.10143784] b= [ 0.29929042] loss= 0.000881111
W= [ 0.10127408] b= [ 0.29929197] loss= 0.000881066

拟合后的直线如图所示:

使用tensorflow实现线性回归

结论:最终w趋近于0.1,b趋近于0.3,满足提前设定的数据分布

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
Python tkinter模版代码实例
Feb 05 Python
python绘制玫瑰的实现代码
Mar 02 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
520使用Python实现“我爱你”表白
May 20 Python
Python  unittest单元测试框架的使用
Sep 08 #Python
tensorflow实现逻辑回归模型
Sep 08 #Python
Django实现表单验证
Sep 08 #Python
python实现排序算法解析
Sep 08 #Python
TensorFlow实现Logistic回归
Sep 07 #Python
tensorflow实现简单逻辑回归
Sep 07 #Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 #Python
You might like
BBS(php & mysql)完整版(三)
2006/10/09 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php实现读取超大文件的方法
2014/07/28 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
Python列表推导式的使用方法
2013/11/21 Python
Python中for循环控制语句用法实例
2015/06/02 Python
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
介绍下java.util.Arrays类
2012/10/16 面试题
机修工岗位职责
2013/11/24 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
机械操作工岗位职责
2014/08/08 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书