1. 程式人生 > >機器學習實戰----線性迴歸

機器學習實戰----線性迴歸

一 介紹

線性迴歸演算法是使用線性方程對資料集進行擬合的演算法,是一個非常常見的迴歸演算法。線性迴歸分為為兩種:單變數線性迴歸和多變數線性迴歸。多變數是單變數的一種推廣。

1 單變量回歸演算法:

           單變數不言而喻是隻有一個變數的迴歸演算法。預測函式會根據輸入特徵來計算輸出值。輸入與輸出的關係為。這個方程表達的是一條直線,我們的目標是構造一個函式,來對映資料集中的輸入特徵x和輸出值y,使得預測函式預測值與真實值y的整體誤差最小。構造這個函式的最關鍵是找到合適的。他們被稱為模型引數。

2 多變量回歸演算法:

         其實就是輸入特徵X的量級的變化。迴歸演算法的預測函式為:+…… 假設x0=1時,得到

二 目標函式推導與求解

   1 推導

          通過資料集得到的預測函式,真實值與預測之間會存在誤差,可得到下面的公式:

。我們假設誤差是獨立並且具有相同的分佈,通常認為服從均值為0,對於找為對於找到的水塔,對於所有的,的高斯分佈。

根據誤差服從高斯分佈可得:

備註:此部分裡面的xi代表的是第i個樣本;yi代表的是第i個樣本的真實值。

2 求解

     備註:此部分裡面的xi代表的是第i個樣本;yi代表的是第i個樣本的真實值。

     方法一:根據矩陣求導的方式求解

缺點:得到的值需要對矩陣求逆,但是當矩陣為非滿秩矩陣時,無法求逆。此時可以採用嶺迴歸(嶺迴歸就是在矩陣XTX上加上了一個λI從而使得矩陣非奇異,進而能對XTX+λI求逆)。

方法二 :使用梯度下降演算法

在機器學習中,在求最小值的時候,可以通過梯度下降法來一步步求解。

這樣我們得到了採用梯度下降演算法的引數迭代公式。

下面就是採用梯度下降演算法的基本步驟:

(1)確定學習率:α太大可能會使成本函式無法收斂,太小則計算太多。

(2)確定引數起始點:可以讓所有的引數都為1作為起點。也可根據實際情況靈活選擇,以提高演算法的效能。

(3)計算引數的下一組值:根據梯度下降引數迭代公式,分別同時算出(點選看詳解)新的θj的值。然後用新的θ值,得到新的預測函式hθ(x),再根據新的預測函式,帶入目標函式J(θ)就可以計算出新的目標值。

(4)確認目標函式是否收斂:拿新的目標值與舊的目標值進行比較,看目標值是否變得越來越小。如果兩個目標值之間的差異小於誤差範圍,就可以近似的認為找到了最小的目標函式值。如果再誤差範圍之外,重複第三步,直到找到最優解。

總結:

1 線性迴歸是利用數理統計中迴歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。

2 如何讓自己的學習有質感,一步步去推導。很多數學公式沒有想象的那麼難。

3 1+1+1 一定遠遠大於3.

注:推薦學習資料唐宇迪視訊