温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用tensorflow做线性回归

发布时间:2021-12-23 15:34:49 来源:亿速云 阅读:190 作者:柒染 栏目:大数据

本篇文章给大家分享的是有关如何用tensorflow做线性回归,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

01

Tensorflow做线性回归

前面实现过最小二乘法的线性回归算法,梯度下降求解过程,详见文章:

机器学习之线性回归:算法兑现为python代码

那么,借助tensorflow如何实现最小二乘法的线性回归呢?基本的思路,首先生成拟合的数据集,然后构建线性回归的Graph,最后在Session中迭代train器,得到拟合的参数w和b,画出拟合曲线。

1.1 生成拟合的数据集,数据集只含有一个特征,注意误差项需要满足高斯分布,其分布的代码如下,首先导入3个库,

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt

#数据点100个

num_points = 100

vectors_set = []

for i in range(num_points):

    x1 = np.random.normal(0.,0.55)

    y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0,0.03)

    vectors_set.append([x1,y1])

 #特征x   

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

#标签值y

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


plt.scatter(x_data,y_data,c='b')

plt.show()

产生的数据分布如下所示:

如何用tensorflow做线性回归

1.2 构建线性回归的Graph

w = tf.Variable(tf.random_uniform([1],-1.,1.),name='myw')

b = tf.Variable(tf.zeros([1]),name='myb')

#经过计算得出预估值

y = w * x_data + b

#以预估值y和实际值y_data之间的均方差作为损失

loss = tf.reduce_mean(tf.square(y-y_data,name='mysquare'), name='myloss')

#采用梯度下降法来优化参数

optimizer = tf.train.GradientDescentOptimizer(0.5)

train = optimizer.minimize(loss,name='mytrain')

1.3 在Session中运行构建好的Graph

#global_variables_initializer初始化Variable等变量

sess = tf.Session()

init = tf.global_variables_initializer()

sess.run(init)

print("w=", sess.run(w),"b=",sess.run(b),sess.run(loss))

#迭代20次train

for step in range(20):

    sess.run(train)

    print("w=", sess.run(w),"b=",sess.run(b),sess.run(loss))

#写入磁盘,提供tensorboard在浏览器中展示用

writer = tf.summary.FileWriter("./mytmp",sess.graph)

打印下w和b,损失值的变化情况,可以看到损失值从0.24降到0.0008.

如何用tensorflow做线性回归

1.4绘制拟合曲线

plt.scatter(x_data,y_data,c='b')

plt.plot(x_data,sess.run(w)*x_data+sess.run(b))

plt.show()

如何用tensorflow做线性回归


02

Tensorboard展示Graph

关于如何在tensorboard中展示构建好的Graph,请参考文章,不再赘述,直接分析tensorflow绘制的graph.

TensorFlow笔记|Get Started

得到的Graph界面如下所示:

如何用tensorflow做线性回归

Main Graph视图放大版,数据从底部是如何经过Operators,流动到顶部的,大家可以顺一下。

如何用tensorflow做线性回归


以上就是如何用tensorflow做线性回归,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI