對於給定訓練集
x =[4
,8,5
,10,12
]y =[20
,50,30
,70,60
]
引數的定義以及設定
#初始化引數
theta0 = theta1 =
0#學習率
alpha =
0.00001
#迭代次數
cnt =
0error0 = error1 =
0#指定乙個閾值,用於檢查兩次誤差
thershold =
0.0000001
迭代進行
while
true
:#定義梯度 diff[0]-theta0 diff[1]-theta1
diff =[0
,0] m =
len(x)
for i in
range
(m):
diff[0]
= y[i]
-(theta0+theta1*x[i]
) diff[1]
=(y[i]
-(theta0+theta1*x[i]))
*x[i]
theta0 = theta0 + alpha * diff[0]
theta1 = theta1 + alpha * diff[1]
#誤差計算
for i in
range
(m):
error1 +=
(y[i]
-(theta0+theta1*x[i]))
**2error1 /= m
ifabs(error1 - error0)
< thershold:
break
else
:error0 = error1
cnt +=
1pass
print
('theta0'
,theta0)
print
('theta1'
,theta1)
print
('cnt'
,cnt)
結果**
print
(predict(theta0,theta1,8)
)
梯度下降法 一元線性回歸
import numpy as np import matplotlib.pyplot as plt 載入資料,delimite表示分隔符為逗號 data np.genfromtxt data.csv delimiter x data data 0 y data data 1 plt.scatter...
梯度下降法 一元線性回歸
import numpy as np import matplotlib.pyplot as plt 載入資料 data np.genfromtxt data.csv delimiter x data data 0 y data data 1 plt.scatter x data,y data pl...
機器學習 一元線性回歸及其手寫實現梯度下降
線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法。回歸分析中,只包括乙個自變數和乙個因變數,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關係,則稱為多元線性回歸...