前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow | 回归分析

Tensorflow | 回归分析

作者头像
努力在北京混出人样
发布2019-02-18 16:33:00
7620
发布2019-02-18 16:33:00
举报
文章被收录于专栏:祥子的故事

用tensorflow来做回归分析,基于梯度下降法

这里以一元回归分析为例子来说明如何用tensorflow实现回归分析。

1、产生数据 采用随机的方式来产生。

先基于均值为0,方差为0.9的正态分布产生随机数X,再通过线性变换产生Y,再添加一个均值为0,方差为0.5的噪声。这样便得到数据X和Y。

代码语言:javascript
复制
import numpy as np

#产生100条数据
num_puntos = 100
conjunto_puntos = []
for i in range(num_puntos):
    x1= np.random.normal(0.0, 0.9)
    y1= x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.05)
    conjunto_puntos.append([x1, y1])


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

画出散点图

代码语言:javascript
复制
import matplotlib.pyplot as plt

#Graphic display
plt.plot(x_data, y_data, 'ro')
plt.legend()
plt.show()
散点图
散点图

定义模型

代码语言:javascript
复制
import tensorflow as tf

#定义W和b,这里的W是一个数,取值范围为-1到1,b为一个数
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
#模型
y = W * x_data + b

#损失函数
loss = tf.reduce_mean(tf.square(y - y_data))
#优化,基于梯度下降法的优化,步长为0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
#对损失函数优化
train = optimizer.minimize(loss)

#初始化
init = tf.global_variables_initializer()

#启动图计算
sess = tf.Session()
sess.run(init)

迭代计算,迭代100步,每10次输出一个结果

代码语言:javascript
复制
for step in range(100):
    sess.run(train)
    if step % 10 == 0:
        print(step, sess.run(W), sess.run(b))

结果: 0 [ 0.13928029] [ 0.30465567] 10 [ 0.10003368] [ 0.29671374] 20 [ 0.10003368] [ 0.29671374] 30 [ 0.10003368] [ 0.29671374] 40 [ 0.10003368] [ 0.29671374] 50 [ 0.10003368] [ 0.29671374] 60 [ 0.10003368] [ 0.29671374] 70 [ 0.10003368] [ 0.29671374] 80 [ 0.10003368] [ 0.29671374] 90 [ 0.10003368] [ 0.29671374]

画出散点图和回归线

代码语言:javascript
复制
plt.plot(x_data, y_data, 'ro')
plt.plot(x_data, sess.run(W) * x_data + sess.run(b))
plt.legend()
plt.show()
回归线
回归线

完整的代码见github: https://github.com/zhangdm/machine-learning-summary/tree/master/tensorflow/回归

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年02月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档