線性回歸就是用線性方程去擬合一組資料,
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...