tensorflow 實現線性迴歸

簡介

tensorflow這個庫集成了很多算法,這次主要是用它實現簡單的線性迴歸,線性迴歸包括一元線性迴歸和多元線性迴歸,一元線性迴歸方程大概是這樣 y=ax+b,而我們訓練模型的目標即通過大量數據把a和b的值訓練出來,x表示特徵,a表示x的權值,b表示偏置值。同理多元線性方程的目標把\Theta0、\Theta1、\Theta2...等訓練出來。

在tensorflow中代碼實現如下:

import tensorflow as tf
import numpy as np
# 使用 NumPy 生成假數據(phony data), 總共 100 個點.
x_data = np.float32(np.random.rand(2, 200)) # 隨機輸入
y_data = np.dot([0.300, 0.500], x_data) + 0.600   
# 構造一個線性模型
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))   #最小二乘法計算損失
optimizer = tf.train.GradientDescentOptimizer(0.001)  #標準梯度下降法作爲優化器
train = optimizer.minimize(loss)

# 初始化變量
init = tf.initialize_all_variables()

# 啓動圖 (graph)
with tf.Session() as sess:
sess.run(init)
# 擬合平面
for step in range(0, 401):   
    sess.run(train)
    if step % 20 == 0:
        print (step, sess.run(W), sess.run(b))

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章