中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python線性回歸方法

發布時間:2021-11-20 14:36:46 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

這篇文章主要講解了“怎么使用Python線性回歸方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么使用Python線性回歸方法”吧!

來說說約定的符號,線性回歸參數主要由斜率和截距組成,這里用W表示斜率,b表示截距。大寫的W表示這是一個向量。一般來說是n_feauter_num數量,就是有多少個特征,W的shape就是(n_feauter_num,1),截距b是一個常數,通過公式Y=W*X+b計算出目標Y值,一般來說,在機器學習中約定原始值為Y,預測值為Y_hat。下面來談談具體實現步驟

  • 構造數據

  • 構造loss function(coss function)

  • 分別對W和b計算梯度(也是對cost function分別對W和b求導)

  • 計算Y_hat

  • 多次迭代計算梯度,直接收斂或者迭代結束

下面給出具體python代碼實現,本代碼是通用代碼,可以任意擴展W,代碼中計算loss和梯度的地方采用的向量實現,因此增加W的維度不用修改代碼

import matplotlib.pyplot as pltimport numpy as npdef f(X):
 w = np.array([1, 3, 2])
 b = 10
 return np.dot(X, w.T) + bdef cost(X, Y, w, b):
 m = X.shape[0]
 Z = np.dot(X, w) + b
 Y_hat = Z.reshape(m, 1)
 cost = np.sum(np.square(Y_hat - Y)) / (2 * m) return costdef gradient_descent(X, Y, W, b, learning_rate):
 m = X.shape[0]
 W = W - learning_rate * (1 / m) * X.T.dot((np.dot(X, W) + b - Y))
 b = b - learning_rate * (1 / m) * np.sum(np.dot(X, W) + b - Y) return W, bdef main():
 # sample number
 m = 5
 # feature number
 n = 3
 total = m * n # construct data
 X = np.random.rand(total).reshape(m, n)
 Y = f(X).reshape(m, 1)# iris = datasets.load_iris()# X, Y = iris.data, iris.target.reshape(150, 1)# X = X[Y[:, 0] < 2]# Y = Y[Y[:, 0] < 2]# m = X.shape[0]# n = X.shape[1]
 # define parameter
 W = np.ones((n, 1), dtype=float).reshape(n, 1)
 b = 0.0
 # def forward pass++
 learning_rate = 0.1
 iter_num = 10000
 i = 0
 J = [] while i < iter_num:
 i = i + 1
 W, b = gradient_descent(X, Y, W, b, learning_rate)
 j = cost(X, Y, W, b)
 J.append(j)
 print(W, b)
 print(j)
 plt.plot(J)
 plt.show()if __name__ == '__main__':
 main()

可以看到,結果輸出很接近預設參數[1,3,2]和10

是不是感覺so easy.

step: 4998 loss: 3.46349593719e-07[[ 1.00286704]
 [ 3.00463459]
 [ 2.00173473]] 9.99528287088step: 4999 loss: 3.45443124835e-07[[ 1.00286329]
 [ 3.00462853]
 [ 2.00173246]] 9.99528904819step: 5000 loss: 3.44539028368e-07

感謝各位的閱讀,以上就是“怎么使用Python線性回歸方法”的內容了,經過本文的學習后,相信大家對怎么使用Python線性回歸方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉新县| 兴义市| 桐庐县| 汉阴县| 信宜市| 克什克腾旗| 乌苏市| 沁源县| 迭部县| 临潭县| 大竹县| 丹江口市| 社旗县| 乾安县| 灵武市| 武陟县| 西青区| 旺苍县| 牙克石市| 北海市| 青冈县| 洛南县| 乡宁县| 文登市| 蚌埠市| 田东县| 廉江市| 鹤山市| 浮梁县| 甘南县| 辽中县| 临海市| 岢岚县| 嘉峪关市| 炉霍县| 壤塘县| 渑池县| 康平县| 板桥市| 尉氏县| 吉木萨尔县|