機器學習之1——線性迴歸

在最近一段時間,對機器學習進行了學習,但感覺效果不是很好。一日與朋友聊起此事,他建議建個博客,一來梳理一下所學內容,二來和大家一起學習交流。因此,建立了此博客,如果您發現博文中有不當之處,歡迎您來郵指明,我的郵箱爲[email protected]

在機器學習中,基本分爲兩大問題——監督學習(supervised learning)和非監督學習(unsupervised learning),監督學習又分爲分類(classification)問題和迴歸(regression)問題。在監督學習中,雖然每一類問題中都有很多方法,但是基本的思路都是沿着建模——確立cost function——參數最優化——新數據的預測

接下來梳理一下線性迴歸算法。在建立模型之前,我們先來定義幾個參量。

Xi——第i個樣本特徵向量,i=1,2....,m

yi——第i個輸出結果向量,i=1,2....,m

θ——參數向量,維數與X一致,j=1,2....,n

m——樣本總數

n——特徵個數

那麼假設函數應該可以表示爲

    
其中Xji是第i個樣本的第j個特徵。在構造假設函數時,個人認爲應當謹慎,要做到不能過擬合也不能欠擬合,應當根據特徵的個數來進行選擇。
在該問題中,我們使用最小二乘法來構造cost function,我們定義J(θ)爲hθ(X)的cost function,則其公式如下:

我們將將對J(θ)進行優化,在優化過程中,我們採用最小均方算法(Least mean square,LMS),LMS算法的中心思想爲通過迭代將凸函數J(θ)逐漸逼近到最優點。
在更新的過程中,我們使用梯度下降法,梯度下降法能夠很容易地得到局部最優解。梯度下降法分爲批量梯度下降法和隨機梯度下降法。參數θ的更新公式如下:

在使用批量梯度下降法時,使用全部的樣本來進行更新每一個參數,而使用隨機梯度下降法時,我們僅僅使用一個樣本來更新參數。所以,批量梯度下降法的計算量十分大,當數據量比較大時,運行速度緩慢,但是能夠得到較爲最優的結果,而隨機梯度下降法僅僅使用一個樣本的數據,因此,運行速度比較快,但是一般在最優點附近徘徊,不能得到較爲精確的最優解。

參考文獻:
[1] Andrew NG.Coursea,https://www.coursera.org/learn/machine-learning/home/welcome

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章