日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tensorflow实现多元线性回归

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tensorflow实现多元线性回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇使用tensorflow實現了簡單的線性回歸,這次在簡單的線性回歸基礎上,通過在權重和占位符聲明中
修改來對相同的數據進行多元線性回歸。
同樣以波士頓房價數據為例
波士頓房價數據集可從http://lib.stat.cmu.edu/datasets/boston處獲取。

多元線性回歸具體實現步驟

1:導入需要的所有軟件包
2:因各特征的數據范圍不同,需要歸一化特征數據,為此定義一個歸一化函數
定義一個append_bias_reshape()函數,來將固定輸入值和偏置結合起來
3:加載數據集,并劃分為X_train,Y_train。注意X_train包含所需要的特征,可以選擇在這里對數據
進行歸一化處理。也可以添加偏置并對網絡數據重構
4:為訓練數據聲明Tensorflow占位符,觀測占位符X的形狀變化
5:為權重和偏置創建Tensorflow變量。通過隨機數初始化權重
6:定義要用于預測的線性回歸模型,這個實例需要矩陣乘法來完成這個任務
7:定義損失函數
8:選擇正確的優化器
9:定義初始化操作符
10:開始計算圖
11繪制損失函數
12利用從模型學到的系數來預測房價

具體代碼如下:

#1:導入所需要的軟件包 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_bostontf.compat.v1.disable_eager_execution()'''使用Tensorflow實現多元線性回歸'''#2:因為各特征的數據范圍不同,需要歸一化特征數據。為此定義一個歸一化函數 #另外,這里添加一個額外的固定輸入值將權重和偏置結合起來。 #為此定義函數append_bias_reshape()。該技巧可簡化編程 def normalize(X):'''歸一化數組 X''''''np.mean:計算均值np.std:計算標準差'''mean = np.mean(X)std = np.std(X)X = (X-mean)/stdreturn X def append_bias_reshape(features,labels):'''param features: 對于矩陣來說,shape[0]:表示矩陣的行數shape[1]:表示矩陣的列數'''m = features.shape[0]n = features.shape[1]'''np.c_:按行將矩陣組合起來'''x = np.reshape(np.c_[np.ones(m),features],[m,n+1])y = np.reshape(labels,[m,1])return x,y#3:加載波士頓房價數據集,并劃分為X_train,Y_train #可以選擇這里對數據進行歸一化處理,也可以添加偏置并對網絡數據重構boston = load_boston() X_train,Y_train = boston.data,boston.target X_train = normalize(X_train) X_train,Y_train = append_bias_reshape(X_train,Y_train) # 訓練示例數 m = len(X_train) #特征+偏置的數量 n = 13+1 #4:為訓練數據聲明Tensorflow占位符,觀測占位符X的形狀變化 X = tf.compat.v1.placeholder(tf.float32,name='X',shape=[m,n]) Y = tf.compat.v1.placeholder(tf.float32,name='Y')#5:為權重和偏置創建Tensorflow變量,通過隨機數初始化權重 w = tf.compat.v1.Variable(tf.random.normal([n,1])) b = tf.compat.v1.Variable(tf.zeros(1))#6:定義用于預測的線性回歸模型。需要矩陣乘法完成任務Y_hat = tf.matmul(X,w)#7:為了更好的求微分,定義損失函數 loss = tf.reduce_mean(tf.square(Y-Y_hat,name='loss'))#8:選擇正確的優化器 optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)#9:定義初始化操作符 init_op = tf.compat.v1.global_variables_initializer() total = []#10:開始計算圖with tf.compat.v1.Session() as sess:sess.run(init_op)writer = tf.compat.v1.summary.FileWriter('graphs2',sess.graph)for i in range(100):l = sess.run([optimizer,loss],feed_dict={X:X_train,Y:Y_train})total.append(l)print('Epoch {0}:Loss {1}'.format(i,l))writer.close()w_value,b_value = sess.run([w,b])#11:繪制損失函數 plt.plot(total) plt.show()#12:從模型中學到的系數來預測房價 N = 500 X_new = X_train[N,:] Y_pred = (np.matmul(X_new,w_value)+b_value).round(1) print('Predicted value:${0} Actual value: / ${1}'.format(Y_pred[0]*1000,Y_train[N]*1000,'\nDone'))

總結

以上是生活随笔為你收集整理的Tensorflow实现多元线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。