TensorFlow 實戰多元線性迴歸問題

TensorFlow 實戰

多元線性迴歸問題

本文小編將以一個具體例子來說明如何用 TensorFlow 來實現多元線性迴歸問題。我們以波士頓房價預測爲例進行講解。

1、 情景引入

波士頓房價數據集包括506個樣本,每個樣本包括12個特徵變量和該地區的平均房價。房價顯然和多個特徵變量是相關的,因此需要選擇多個特徵變量來建立線性方程,這就是典型的多變量線性迴歸問題,下面是多元線性迴歸模型公式:y=w0+w1x1+w2x2+...+wn*xn+b
下面是波士頓房價的數據集部分展示,後面我們將使用數據集進行模型實現。image.png

2、讀取數據並歸一化

通過pandas讀取數據文件,列出統計概述。

  1. %matplotlib inline

  2. import matplotlib.pyplot as plt

  3. import numpy as np

  4. import tensorflow as tf

  5. import pandas as pd


  6. #讀取數據文件

  7. df = pd.read_csv("./boston.csv",header=0)

  8. #顯示數據摘要描述信息

  9. print(df.describe())

image.png

  1. #對數據歸一化到0-1之間

  2. for i in range(12):

  3.    df[:,i]=(df[:,i]-df[:,i].min())/(df[:,i].max()-df[:,i].min())


  4. #x_data爲歸一化後的前12列特徵數據

  5. x_data = df[:,:12]

  6. #y_data爲最後一列標籤數據

  7. y_data = df[:12]

3、模型定義

首先定義特徵數據和標籤數據的佔位符,shape中None表示行的數量未知,在實際訓練時決定一次代入多少行樣本,從一個樣本的隨機SDG到批量SDG都可以。

x = tf.placeholder(tf.float32,[None,12],name="x")y = tf.placeholder(tf.float32,[None,1],name="y")

定義模型函數image.png

4、訓練模型

設置訓練超參數

#迭代次數train_epochs = 50#學習率learning_rate = 0.01

定義均方差損失函數

with tf.name_scope("LossFunction"):    loss_function = tf.reduce_mean(tf.pow(y-pred,2)) #均方誤差

選擇優化器,初始化一個GradientDescentOptimizer

#梯度下降優化器optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)

5、創建會話

聲明會話

sess = tf.Session()

變量初始化

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

6、迭代訓練

模型訓練階段,設置迭代次數,每次通過將樣本逐個輸入模型,進行梯度下降優化操作,每輪迭代後,繪製出模型曲線image.png下圖爲最後的訓練結果image.png

7、訓練結果的可視化

image.png

plt.plot(loss_list)

image.png

8、TensorBoard 可視化

聲明會話

sess = tf.Session()#定義初始化變量的操作init = tf.global_variables_initializer()

爲 TensorBoard 可視化準備數據

#設置日誌存儲目錄logdir = 'd:/log'sum_Loss = tf.summary.scalar("loss",loss_function)merged = tf.summary.merge_all()

創建摘要的文件寫入器

sess.run(init)writer = tf.summary.FileWwriter(logdir,sess.graph)

查看計算圖image.pngTensorBoard查看lossimage.png好啦,最後趕快動手嘗試一下屬於你們的第一個多元迴歸模型的建立吧!

本文來自讀者投稿,歡迎大家點擊下面鏈接進行投稿:
歡迎投稿


---------End---------

image.png

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