线性模型(1) —— 多元线性回归
提綱:
?
1.線性模型的基本形式
線性模型是一種形式簡單,易于建模,且可解釋性很強的模型,它通過一個屬性的線性組合來進行預測,其基本的形式為:
?
式(1)
?
轉換成向量形式之后寫成:
式(2)
?
為什么說其解釋性很強呢,是因為模型的權值向量十分直觀地表達了樣本中每一個屬性在預測中的重要度,打個比方,要預測今天是否會下雨,并且已經基于歷史數據學習到了模型中的權重向量和截距b,則可以綜合考慮各個屬性來判斷今天是否會下雨:
式(3)
?
2.多元線性回歸的損失函數
在多元線性回歸任務中,均方誤差是比較常用的一個損失函數,學習的任務就是要基于均方誤差最小化來對模型的參數進行求解,損失函數的形式為:
?
式(4)
其中,m為樣本的數量,yi為樣本的真實值,f(x)為預測值。
將式(4)中的截距b合并到w,使得新的權重向量增加多了一維,即:w=(w;b)(以下所有的w均是這種形式),相應的每個樣本xi也增加了一維,變為xi=(x11,x12,x13···x1d,1)
于是損失函數可以寫成以下形式:
式(5)
其中y是樣本的標記向量,y=(y1,y2,y3···ym),X為樣本矩陣。
?
3.最小二乘法求多元線性回歸的參數
在學習模型的任務中,我們要做到的是讓預測值盡量逼近真實值,做到誤差最小,而均方誤差就是表達這種誤差的一種,所以我們要求解多元線性回歸模型,就是要求解使均方誤差最小化時所對應的參數:
式(6)
其中w*為模型對應的解,即使得均方誤差函數最小化時的權重向量。
那么,我們應該如何求w*呢?在這里,我們可以用最小二乘法對模型的參數進行估計,具體做法是:損失函數對需要求解的參數進行求導,并且令其導數為0,求得相應的參數。
在這里,我們需要讓式(5)對w求導,在求導之前,我們來看一下兩個求導公式:
式(7)
式(8)
?下圖為詳細的求導過程(字跡潦草~~請勿介意)
?損失函數對參數進行求導之后,可以求得:
式(9)
?
令式(9)為零可得:
式(10)
以上即為參數w最優解的閉式解,但我們可以發現w*的計算涉及矩陣的求逆,這樣的話就有一些限制了,只有在X^T*X為滿秩矩陣或者正定矩陣時,才可以使用以上式子計算。但在現實任務中,X^T*X往往不是滿秩矩陣,這樣的話就會導致有多個解,并且這多個解都能使均方誤差最小化,但并不是所有的解都適合于做預測任務,因為某些解可能會產生過擬合的問題。
?
4.最小二乘法和隨機梯度下降的區別
在學習的過程中,自己有想過這兩者的區別,當初大概只知道以下一些東西:
最小二乘法是最小化均方誤差,當X^T*X為滿秩矩陣時,可以直接求參數的閉式解,而隨機梯度下降需要不斷地迭代對參數進行更新,并且所求到的解不一定是全局最優解。
但寫博客的時候去逛了逛知乎,https://www.zhihu.com/question/20822481 ?其中用戶夏之晨的答案讓我茅塞頓開······
?
5.疑問
線性模型可以依靠權重來判斷特征的重要程度,但這個判斷究竟有多準確?特征之間的共線性使得特征相互之間會共享一些信息,又怎么判斷某個特征的重要程度不是其他特征共享給它的呢?
?
6.學習和參考資料
周志華老師的《機器學習》
?
轉載于:https://www.cnblogs.com/pengyingzhi/p/5383801.html
總結
以上是生活随笔為你收集整理的线性模型(1) —— 多元线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css3中translate的用法是什么
- 下一篇: Pug+Stylus+Bootstrap