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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

TensorFlow训练单特征和多特征的线性回归

發布時間:2023/12/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow训练单特征和多特征的线性回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線性回歸

線性回歸是很常見的一種回歸,線性回歸可以用來預測或者分類,主要解決線性問題。相關知識可看“相關閱讀”。

主要思想

在TensorFlow中進行線性回歸處理重點是將樣本和樣本特征矩陣化。

單特征線性回歸

單特征回歸模型為:y=wx+b

構建模型

X = tf.placeholder(tf.float32, [None, 1]) w = tf.Variable(tf.zeros([1, 1])) b = tf.Variable(tf.zeros([1])) y = tf.matmul(X, w) + b Y = tf.placeholder(tf.float32, [None, 1])

構建成本函數

cost = tf.reduce_mean(tf.square(Y-y))

梯度下降最小化成本函數,梯度下降步長為0.01

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

完整代碼,迭代次數為10000

import tensorflow as tfX = tf.placeholder(tf.float32, [None, 1]) w = tf.Variable(tf.zeros([1, 1])) b = tf.Variable(tf.zeros([1])) y = tf.matmul(X, w) + b Y = tf.placeholder(tf.float32, [None, 1])# 成本函數 sum(sqr(y_-y))/n cost = tf.reduce_mean(tf.square(Y-y))# 用梯度下降訓練 train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)init = tf.initialize_all_variables() sess = tf.Session() sess.run(init)x_train = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]] y_train = [[10],[11.5],[12],[13],[14.5],[15.5],[16.8],[17.3],[18],[18.7]]for i in range(10000):sess.run(train_step, feed_dict={X: x_train, Y: y_train}) print("w:%f" % sess.run(w)) print("b:%f" % sess.run(b))

多特征線性回歸

多特征回歸模型為:y=(w1x1+w2x2+...+wnxn)+b,寫為y=wx+b

y為m行1列矩陣,x為m行n列矩陣,w為n行1列矩陣。TensorFlow中用如下來表示模型。

構建模型

X = tf.placeholder(tf.float32, [None, n]) w = tf.Variable(tf.zeros([n, 1])) b = tf.Variable(tf.zeros([1])) y = tf.matmul(X, w) + b Y = tf.placeholder(tf.float32, [None, 1])

構建成本函數

cost = tf.reduce_mean(tf.square(Y-y))

梯度下降最小化成本函數,梯度下降步長為0.01

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

完整代碼,迭代次數為10000

import tensorflow as tfX = tf.placeholder(tf.float32, [None, 2]) w = tf.Variable(tf.zeros([2, 1])) b = tf.Variable(tf.zeros([1])) y = tf.matmul(X, w) + b Y = tf.placeholder(tf.float32, [None, 1])# 成本函數 sum(sqr(y_-y))/n cost = tf.reduce_mean(tf.square(Y-y))# 用梯度下降訓練 train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)init = tf.initialize_all_variables() sess = tf.Session() sess.run(init)x_train = [[1, 2], [2, 1], [2, 3], [3, 5], [1, 3], [4, 2], [7, 3], [4, 5], [11, 3], [8, 7]] y_train = [[7], [8], [10], [14], [8], [13], [20], [16], [28], [26]]for i in range(10000):sess.run(train_step, feed_dict={X: x_train, Y: y_train}) print("w0:%f" % sess.run(w[0])) print("w1:%f" % sess.run(w[1])) print("b:%f" % sess.run(b))

總結

在線性回歸中,TensorFlow可以很方便地利用矩陣進行多特征的樣本訓練。

相關閱讀

  • 線性回歸之最小二乘法
  • 機器學習之梯度下降法
  • 機器學習的監督學習在研究什么

========廣告時間========

鄙人的新書《Tomcat內核設計剖析》已經在京東銷售了,有需要的朋友可以到 https://item.jd.com/12185360.html 進行預定。感謝各位朋友。

為什么寫《Tomcat內核設計剖析》

=========================
歡迎關注:

總結

以上是生活随笔為你收集整理的TensorFlow训练单特征和多特征的线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。

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