1. 程式人生 > >Day2 多元線性回歸

Day2 多元線性回歸

多次 速度 png 比較 歸一化 multiple 函數 front cal

多元線性回歸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 多元線性回歸