機器學習之一元線性回歸(python實現)

2021-08-20 05:53:45 字數 1690 閱讀 6654

1.確定假設函式

如:y=2x+7

其中,(x,y)是一組資料,設共有m個

2.誤差cost

用平方誤差代價函式

3.減小誤差(用梯度下降)

1.初始化資料

x、y:樣本

learning rate:學習率

迴圈次數loopnum:梯度下降次數

2.梯度下降

迴圈(迴圈loopnum次):

(1)算偏導(需要乙個for迴圈遍歷所有資料)

(2)利用梯度下降數學式子

import numpy as np

deflinearregression

(data_x,data_y,learningrate,loopnum):

w,b=0,0

#梯度下降

for i in range(loopnum):

w_derivative, b_derivative, cost = 0, 0, 0

for j in range(len(data_x)):

wxplusb=w*data_x[j]+b

w_derivative+=(wxplusb-data_y[j])*data_x[j]

b_derivative+=wxplusb-data_y[j]

cost+=(wxplusb-data_y[j])*(wxplusb-data_y[j])

w_derivative=w_derivative/len(data_x)

b_derivative=b_derivative/len(data_x)

w = w - learningrate*w_derivative

b = b - learningrate*b_derivative

cost = cost/(2*len(data_x))

if i%100==0:

print(cost)

print(w)

print(b)

if __name__== "__main__": #_x:protected __x:private

x=np.random.normal(0,10,100)

noise=np.random.normal(0,0.05,100)

y=2*x+7+noise

linearregression(x,y,0.01,5000)

1.輸出cost

可以看到,一開始的誤差是很大的,然後減小了

最後幾次輸出的cost沒有變化,可以將訓練的次數減小一點

2.訓練完的w和b

和目標w=2,b=7很接近

Python 機器學習 一元線性回歸

一元線性回歸模型很簡單 y1 ax b y1為實際值,為正態的誤差。y2 ax b,y2為 值。y1 y2。def model a,b,x return a x b 這裡將整組資料的 結果方差作為損失函式。j a,b sum y1 y2 2 n def cost a,b,x,y x is argu,...

機器學習 一元線性回歸演算法

線性回歸 線性回歸擬合原理 fit方法 ridge回歸 損失函式 l2 lasso回歸 損失函式 l1 懲罰項係數alpha高,菱形面積小,alpha低,菱形面積大 elastic net 損失函式 l1 l2 舉例 lasso回歸是隨機梯度下降 l1,此處選擇懲罰項係數為0.15 與 之對比的sg...

機器學習(四)一元線性回歸

h x 0 1 xh theta x theta 0 theta 1x h x 0 1 x這個方程對於的影象是一條直線,稱為回歸線。其中 1 theta 1 1 為回歸線的斜率,0 theta 0 0 為回歸線的截距 j 0,1 1 2m i 1m yi h xi 2j theta 0,theta ...