Day2 多元線性回歸
多元線性回歸Linear Regression with multiple variables
當有一個特征輸入時,h(x)函數可表示為
當有多個特征輸入時,h(x)函數可表示為
設x0 = 1,則特征輸入和參數可表示為:
h(x)函數就可表示為:
代價函數cost function:
多元線性回歸中的梯度下降
特征縮放Feature Scaling
當輸入的特征值處在一個很大的範圍時,梯度下降算法會叠代很多步才能達到收斂,
為了讓收斂速度加快,我們時每一個特征值處在相同的範圍,如-1到1內。
這個範圍不應太大或太小,一般可取在-3到3。
均值歸一化Mean Normalization
均值歸一化就是用代替,使xi的均值接近於0.但x0的值恒為1.
學習速率α
為了確保梯度下降正常工作,可以作minJ(θ)關於叠代次數的函數圖:
隨著叠代次數的增加,minJ(θ)的值減小到趨於穩定,就說明梯度下降收斂。
為了確保梯度下降正常工作,還可以用自動收斂測試,例如當minJ(θ)的值下降少於一個很小的值,如10-3時,可認為收斂,但這個值的大小不好選定。
幾種可能出現的圖像情況:
如果α的值過小,會收斂的很慢;
如果α的值過大,J的值可能在每一步叠代過程中不會減小,最終不會收斂。
為了選擇合適的α,可以選擇... 0.001,0.003,0.01,0.03,0.1,0.3,1 ...
特征值的選擇
在建立函數h(x)時,不一定要將所有的特征值原封不動的寫進去,可以對其進行組合,
如:一個用於房價預測的函數
可令x=frontage*depth成為一個新的特征值,函數就變為
標準方程法Normal equation
通過標準方程法可以通過一次計算得到θ值,而不需要像梯度下降那樣做多次叠代,也不需要feature scaling。
公式:
梯度下降法與標準方程法比較:
梯度下降法 | 標準方程法 |
需要選擇α | 不需要選擇α |
需要多次叠代 | 不需要叠代 |
當特征值個數n很大時,比較好 | 當特征值個數n很大時,運行較慢 |
當n=10000左右時,考慮用梯度下降 |
計算(XTX)-1需要O(n3) |
在運用標準方程法時可能會遇到XTX不可逆的情況,原因如下:
有冗余的特征值,例如兩個特征值線性相關,這是需要刪除冗余的特征值;
特征值太多,當樣本數m<=特征值數n時,就可能導致不可逆。例如m=10,n=100,那麽θ為101維,用10個樣本來適配101個θ值,顯然是不合適的。這種情況下需要刪除一些特征值或利用正規化(regularization)。
Day2 多元線性回歸