線性模型
1.線性迴歸
1.1 問題及定義
線性迴歸模型是機器學習中的基本算法模型之一,可以用來解決預測房價等問題。如下圖所示的一個例子,房子因房子大小、臥室數目、地板數量等不同而有不同的價格,那麼給定了房子大小、臥室數目、地板數量我們能否預測出一個房子的價格呢?
我們使用線性迴歸來解決上述問題。
給定一個 個特徵的實例 , , 對於線性迴歸的假設定義爲:
其中 表示參數, 。爲了方便,我們引入 ,從而 ,然後將上述式子使用向量表示爲:
我們使用均方誤差來作爲線性迴歸的代價函數,
其中 表示第i個訓練實例的特徵向量, 表示第i個訓練實例的真實值, 表示實例的個數。
我們可以通過用很多數據來訓練這個模型,得到是代價函數最小的參數 ,然後使用這個模型來預測房價。
這裏我介紹兩種方法,一種是梯度下降,一種是最小二乘法。
方法一: 梯度下降
我們讓代價函數對參數 求導,得到梯度,然後讓參數朝着負梯度方向優化, 表示學習率(learning rate),優化更新步驟如下:
將代價函數代入:
求導後得到:
開始的時候可以隨機的選擇一系列參數,計算所有的預測結果之後,再更新這(n+1)個參數,如此循環直至收斂!
方法二: 最小二乘法
最小二乘法是直接通過使代價函數對於參數 的導數爲0,直接計算出參數 的值,不過需要滿足一定的條件,而且當特徵維度很大的時候計算會很慢!
假設 ,實例真實值是 , 上面說過表示實例的個數,那麼使用均值方差的代價函數可以使用向量表示爲:
對 求導得到:
令 得到:
只有當 爲滿秩矩陣或正定矩陣時,即可以求逆矩陣,我們纔可以通過上述方法求得參數 的值。通過這種方法求得的線性迴歸模型爲:
1.2 梯度下降和最小二乘法比較
總體來說,梯度下降實用性更強!
梯度下降 | 最小二乘法 |
---|---|
需要選擇學習率 | 不需要 |
需要多次迭代 | 一次運算得出 |
當特徵數量 n 大時也能較好適用 | 需要計算 ,如果特徵數量 n 較大則運算代價大,因爲矩陣逆的計算時間複雜度爲 ,通常來說當 n 小於 10000 時還是可以接受的 |
適用於各種類型的模型 | 只適用於線性模型,不適合邏輯迴歸模型等其他模型 |
1.3 實現例子
(待補充----)
參考資料:
[1]Andrew course機器學習學習筆記
[2]周志華《機器學習》