有多個特徵的線性迴歸就是我們常說的多變量線性迴歸。我們先申明一些數學標記的含義:
x(i)j 代表第i個樣本中第j個特徵
x(i) 代表第i個樣本的所有特徵
m 代表訓練樣本個數
n 代表特徵個數
模型的多變量形式如下:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn
爲了便於理解,我們可以抽象一種情形,
θ0 代表房屋的基本價格,
θ1 代表每平米的價格,
θ2 代表每層的價格,
x1 代表房屋面積,
x2 代表房屋層數。
通過矩陣乘法,多項式可以寫成矩陣的形式:
hθ(x)=[θ0θ1θ2⋯θn]⎡⎣⎢⎢⎢⎢⎢⎢x0x1x2⋯xn⎤⎦⎥⎥⎥⎥⎥⎥=θTx
則成本函數(代價函數)可以寫作:
J(θ0,θ1,⋯,θn)=12m∑i=1m(hθ(x(i))−y(i))2
對單個θj 進行梯度下降有:
θjθj:=θj−α∂∂θjJ(θ):=θj−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
實用技巧——特徵縮放(feature scaling)
動機:保證特徵在相似的範圍內
特徵範圍差異大會極大減緩收斂速度,梯度下降的迭代過程中會出現震盪現象。
例如:
x1 表示房屋面積(0-2000)平方米
x2 表示臥室數量(1-5)
x1x2=size(feet2)2000=number of bedroom5
如果我們想把特徵範圍控制在[-1, 1]之間,可以進行以下變化:
xi:=xi−μisi
其中
μi 是特徵i的均值,
si 是特徵的範圍值(max - min)。
學習率選擇
如果學習率太小,梯度下降會收斂的很慢;
如果學習率太大,每次迭代J(θ) 反而會增大,導致無法收斂。