機器學習之線性回歸

2021-07-13 15:05:08 字數 4223 閱讀 1714

線性回歸就是用線性方程去擬合一組資料,

x 的最高端是1, 用方程可以表示為: hθ

(x)=

θ0+θ

1x1+

⋯+θn

xn我們令 x0

=1則上式可以改寫為: h(

x)=∑

i=0n

θixi

=θtx

既然是擬合的模型, 則肯定會存在不符合該模型的點, 第

i 個點的真實值與模型**的值之間的差稱為誤差:e=

h(x(

i))−

y(i)

假設總共有

m 個資料點, 則我們定義代價函式為:j(

θ)=1

2∑i=

1m(h

(x(i

))−y

(i))

2我們的目的是使總的誤差最小, 只需求得使 j(

θ)最小的

θ 即可。

那代價函式為什麼是這個形式的呢? 我們可以假定目標變數具有如下的形式y(

i)=θ

tx(i

)+ϵ(

i)其中 ϵi

是服從n(

0,σ2

) 的且滿足iid的隨機雜訊, 其概率密度可寫作為:p(

ϵ(i)

)=12

π−−√

σexp

(−(ϵ

(i))

22σ2

) 也即:p(y

(i)|

x(i)

;θ)=

12π−

−√σe

xp(−

(y(i

)−θt

x(i)

)22σ

2)因為引數

θ 未知, 我們尋求使滿足(x

i,yi

) 可能性最高的

θ 值估計:l(

θ)=∏

i=1m

p(y(

i)|x

(i);

θ)=∏

i=1m

12π−

−√σe

xp(−

(y(i

)−θt

x(i)

)22σ

2)為了計算上的方便, 使兩邊取對數, 則有:l(

θ)=l

ogl(

θ)=l

og∏i

=1m1

2π−−

√σex

p(−(

y(i)

−θtx

(i))

22σ2

)=∑i

=1ml

og12

π−−√

σexp

(−(y

(i)−

θtx(

i))2

2σ2)

=mlo

g12π

−−√σ

−1σ2

⋅12∑

i=1m

(y(i

)−θt

x(i)

)2從上面式子的結果可以看出, 我們只須令 12

∑i=1

m(y(

i)−θ

tx(i

))2

由於代價函式 j(

θ)是凸函式, 存在全域性最優解.

下面介紹兩種方法:

由於梯度是函式下降最快的方向, 因此我們可以重複對 j(

θ)做梯度下降使其收斂到全域性最小.

更新 θ

的步驟為: θj

:=θj−

α∂∂θ

jj(θ

) 其中 α

是學習率.假設現在我們只有乙個樣本(x

,y) 來看看如何求:∂∂

θjj(

θ)=∂

∂θj1

2(h(

θ)−y

)2=(

h(x)

−y)⋅

∂∂θj

(h(x

)−y)

=(h(

x)−y

)⋅∂∂

θj(θ

0x0+

θ1x1

+⋯+θ

jxj+

⋯+θn

xn−y

)=(h

(x)−

y)xj

根據以上匯出的式子可以看出, 對於只有乙個資料點的情形, 引數

θ 的更新規則為: θj

:=θj+

α(y−

h(x)

)xj

那麼考慮所有的

m 個資料點之後的更新式子為: θj

:=θj+

α1m∑

i=1m

(y(i

)−h(

x(i)

))x(

i)j我們從上面更新

θ 的式子中可以看出, 每更新乙個乙個引數 θj

, 我們都要進行m個樣本的求和, 這樣如果樣本數非常大的話, 是非常消耗計算資源的. 為了避免上述問題, 我們可以只應用乙個樣本資料對引數進行更新. θj

:=θj+

α(yi

−h(x

i))x

ij注意我們不保證隨機梯度下降一定能收斂到全域性最小, 但在實踐中, 其收斂結果是足夠接近最優

θ 的.j(

θ)寫成向量形式可以表示為:j(

θ)=1

2∑i=

1m(h

(x(i

))−y

(i))

2=12

(xθ−

y⃗ )t

(xθ−

y⃗ )

由於 j(θ

) 有全域性最優解, 我們令其導數為0可以直接求解最優引數.∇θ

j(θ)

=∇θ(

12(x

θ−y)

t(xθ

−y))

=∇θ(

12(θ

txt−

yt)(

xθ−y

))=∇

θ(12

(θtx

txθ−

θtxt

y−yt

xθ+y

ty))

=12(

2xtx

θ−xt

y−(y

tx)t

)=xt

xθ−x

ty從而有θ=

(xtx

)−1x

ty注意這一步的求解需要滿足乙個隱含的條件:xt

x 是滿秩的或是正定的。

如果 xtx

不滿秩,可以在代價函式上計入正則化項:j′

(θ)=

12(x

θ−y⃗ 

)t(x

θ−y⃗ 

)+λ2

∥θ∥2

對該代價函式求導:∇θ

j′(θ

)=xt

xθ−x

ty+λ

θ 令其為0可得:θ=

(xtx

+λi)

−1xt

y 只要在訓練樣本的特徵數

n<

10000

的情況下, 都可以考慮使用正規方程, 因為它不需要選擇學習率

α , 不需要一步一步的進行迭代. 而當

n>

10000

時, 計算 (x

tx)−

1 耗費的時間就不容忽視了, 其時間複雜度為 o(

n3) , 此時推薦使用梯度下降法進行引數求解.

線性回歸可能存在的乙個問題是欠擬合,因為它求的是具有最小均方誤差的無偏估計,有些方法允許在估計中引入一些偏差,從而降低**的均方誤差。

我們為每個樣本點賦予不同的權重,則代價函式可表示為:j(

θ)=1

2∑i=

1mw(

i)(h

(x(i

))−y

(i))

2 其中樣本權重定義為:w(

i)=exp(−

(x(i

)−x)

22τ2

) 引數 τ

控制著權重隨 **值

x 與樣本 x(

i)的距離衰減速率。

最後求得引數為:θ=

(xtw

x)−1

xtwy

可以看到每次**

x 的回歸值,都要重新計算權係數矩陣

w,也就是說使用區域性加權回歸時需要儲存訓練樣本,而線性回歸則不需要。

機器學習之線性回歸

訓練樣例 x y 輸入變數 特徵 x ps n 1行,1 列 輸出變數 目標變數 y訓練樣例總數 m 特徵維度 n第 i 個訓練樣例 x i y i 所有訓練樣例的輸入變數組成的矩陣 x ps m行,n 1 列,每行是 x i t 所有訓練樣例的輸出變數組成的矩陣 y ps m行,1 列 下表是某地...

機器學習之線性回歸

線性回歸分析 regression analysis 其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標...

機器學習之線性回歸

機器學習之線性回歸 已有資料是 電視廣告的投入 x 產品銷售量 y import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear model import linearregres...