TensorFlow简易学习[2]:实现线性回归

  上篇介绍了TensorFlow基本概念和基本操作,本文将利用TensorFlow举例实现线性回归模型过程。

线性回归算法

  线性回归算法是机器学习中典型监督学习算法,不同于分类算法,线性回归的输出是整个实数空间R(故也可用线性回归做分类)。关于线性回归网络资料很多,算法具体推演不做叙述,这里简要概括基本点。

  目标函数y(不考虑噪声形式):

        

  损失函数Loss:

           

  求解方法梯度下降:

        

TensorFlow实现

  代码

   

#!/usr/bin/pyton

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

x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3

Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))

y = Weights*x_data + biases

loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

sess = tf.Session()
#initialize_local_variables no more support in new version
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
    init = tf.initialize_all_variables()
else:
    init = tf.global_variables_initializer()

sess.run(init)
plt.figure()
for step in range(201):
    sess.run(train)

plt.scatter(x_data, sess.run(y))
plt.plot(x_data, sess.run(y), color = 'red')
plt.show()
sess.close()

 

 

  结果

                           

 

 

 

 --------------------------------------

说明:本列为前期学习时记录,为基本概念和操作,不涉及深入部分。文字部分参考在文中注明,代码参考莫凡 

 

posted @ 2017-11-24 15:27  Splace  阅读(738)  评论(0编辑  收藏  举报