3.多變量線性迴歸 (Linear Regression with multiple variable)
3.1 多維特徵(Multiple Features)
- n 代表特徵的數量
x(i) 代表第 i 個訓練實例,是特徵矩陣中的第 i 行,是一個向量(vector)。x(i)j 代表特徵矩陣中第 i 行的第 j 個特徵,也就是第 i 個訓練實例的第 j 個特徵。
多維線性方程:
hθ=θ0+θ1x+θ2x+...+θnx
這個公式中有 n+1 個參數和 n 個變量,爲了使得公式能夠簡化一些,引入
多維線性方程 簡化爲:
hθ=θTX
3.2 多變量梯度下降(Gradient descent for multiple variables)
cost function :
J(θ)=12m∑1m(hθ(x(i))−y(i))2
在 Octave 中,寫作: J = sum((X * theta - y).^2)/(2*m);梯度下降公式:
θj:=θj−α∂∂θjJ(θ0,θ1) =θj−α1m∑1m((hθ(x(i))−y(i))⋅x(i)j)
在 Octave 中,寫作:
theta=theta−alpha/m∗X′∗(X∗theta−y);
3.3 特徵縮放(feature scaling)
以房價問題爲例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值爲 0- 2000 平方英尺,而房間數量的值則是 0-5,繪製代價函數的等高線圖,看出圖像會顯得很扁,梯度下降算法下降的慢,而且可能來回震盪才能收斂。
mean normalization
解決的方法是嘗試將所有特徵的尺度都儘量歸一化到-1 到 1 之間。最簡單的方法是令
其中 
3.4 學習率(Learning rate)
- 確保梯度下降working correctly
繪製迭代次數和代價函數的圖表來觀測算法在何時趨於收斂。下降說明正常
若增大或來回波動,可能是
2.如何選取
先在10倍之間取,找到合適的區間後,在其中再細化爲3倍左右(log)
We recommend trying values of the learning rate α on a log-scale, at multiplicative steps of about 3 times the previous value
α=…,0.001,0.01,0.1,1,…
α=…,0.001,0.03,0.01,0.03,0.1,0.3,1,…
3.5 多項式迴歸(Features and Polynomial Regression)
房價預測問題
已知x1=frontage(臨街寬度),x2=depth(縱向深度),則
若用 x=frontage*depth=area(面積),則
線性迴歸並不適用於所有數據,有時我們需要曲線來適應我們的數據,比如一個二次方模型或三次方模型(考慮到二次方程的話總會到最高點後隨着size↑,price↓,不合常理;因此選用三次方程進行擬合更合適。):
或採用第二個式子:
特徵歸一化很重要,使得不同feature之間有可比性
3.6 正規方程(Normal Equation)
之前用梯度下降算法,但是對於某些線性迴歸問題,正規方程方法更好。
要找到使cost function
X是m×(n+1)的矩陣,y是m×1的矩陣,正規方程(Normal Equation):
θ=(XTX)−1XTy
在 Octave 中,正規方程寫作:
pinv(X′∗X)∗X′∗y
注:對於那些不可逆的矩陣(通常是因爲特徵之間不獨立,或特徵數量大於訓練集的數量),正規方程方法是不能用的。
梯度下降 | 正規方程 |
---|---|
需要選擇學習率α | 不需要 |
需要多次迭代 | 一次運算得出 |
當特徵數量n大時也能較好適用 | 如果特徵數量n較大則運算代價大,因爲 |
適用於各種類型的模型 | 只適用於線性模型,不適合邏輯迴歸模型等其他模型 |
需要特徵值歸一化 | 不需要 |
3.7 練習