上篇文章中介紹了 單變數線性回歸 ,為什麼說時單變數呢,因為它只有單個特征,其實在很多場景中只有單各特征時遠遠不夠的,當存在多個特征時,我們再使用之前的方法來求特征繫數時是非常麻煩的,需要一個特征繫數一個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾十、幾百、幾千…… 單變數線性回歸: 多變數線性 ...
上篇文章中介紹了單變數線性回歸,為什麼說時單變數呢,因為它只有單個特征,其實在很多場景中只有單各特征時遠遠不夠的,當存在多個特征時,我們再使用之前的方法來求特征繫數時是非常麻煩的,需要一個特征繫數一個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾十、幾百、幾千……
單變數線性回歸:
多變數線性回歸:
所以從這裡我們開始將介紹線性回歸的另一種更方便求解多變數線性回歸的方式:最小二乘法矩陣形式;
模型變換
線性回歸的標量形式:
這裡把上訴式子中的繫數m與誤差c轉換為向量(為了統一從下麵開始使用
表示c與m),把式子中c看成是1c,把1與特征x也轉換為向量;
所以有:
損失函數
損失函數也可以變為:
根據矩陣乘積轉置規則損失函數可以進一步化簡為:
偏導數
還是和之前一樣求損失函數L的極小值,所以求上式L關於W的偏導數;
向量微分常用等式
求L關於W的偏導數:
因為
則有:
W則是通過矩陣形式求出來的最小乘法的解;
示例
下麵還是先使用上次的那組數據進行線性擬合,然後再使用多變數數據再次進行線性擬合已驗證上訴演算法:
單變數線性回歸示例:
這裡使用上面得到的最小二乘法矩陣形式公式對以下數據集進行線性擬合:
n | x | y |
---|---|---|
1 | 2 | 4 |
2 | 6 | 8 |
3 | 9 | 12 |
4 | 13 | 21 |
x、y的矩陣為:
根據公式求w
以下子求整個式子不好求,我們可以先分解該公式;
所以,也就是c=-0.23092,m=1.53092
線性回歸函數可以寫成:y = 1.53092x -0.23092
預測y的值:
y = 1.53092 * 2 - 0.23092=2.83092
y = 1.53092 * 6 - 0.23092=8.9546
y = 1.53092 * 9 - 0.23092=13.54736
y = 1.53092 * 13- 0.23092=19.67104
與上偏文章直接求關於m與c的偏導得出來的結果幾乎一樣(因為小數點不同所以精度有所差異);下篇文章我們將使用本篇文章里的最小二乘法矩陣形式處理多變數的情況;
參考資料:
https://zh.wikipedia.org/zh/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
a first course in machine learning
文章首發地址:Solinx
http://www.solinx.co/archives/721