1. 程式人生 > >通俗理解線性迴歸(Linear Regression)

通俗理解線性迴歸(Linear Regression)

線性迴歸, 最簡單的機器學習演算法, 當你看完這篇文章, 你就會發現, 線性迴歸是多麼的簡單. 首先, 什麼是線性迴歸. 簡單的說, 就是在座標系中有很多點, 線性迴歸的目的就是找到一條線使得這些點都在這條直線上或者直線的周圍, 這就是**線性迴歸(Linear Regression)**. 是不是有畫面感了? 那麼我們上圖片: ![1.png][1] 那麼接下來, 就讓我們來看看具體的線性迴歸吧 首先, 我們以二維資料為例: 我們有一組資料$x$和$y$, 其中$x$是我們的特徵, $y$就是我們的真實值(也就是每一個x對應的值), 我們需要找到一個$w$和$b$從而得到一條直線$y=wx+b$, 而這條直線的$w$和$b$就是我們線性迴歸所需要求的引數 那麼, $w$和$b$需要怎樣求得呢? 那麼我們需要先來了解一下他的機制 如我們之前所說, 我們需要這條直線使得所有的點儘可能的在直線上或者直線的兩邊, 也就是說, 我們這些$x$在我們直線上對應的值與我們真實的值的差儘可能的小, 即$|y-(wx+b)|$儘可能的小, 因此就有了我們的**損失函式**: $$ L=\frac1n\sum^n_{i=1}(y-(wx+b))^2 $$ 那麼我們的目標就變成了使得$L$儘可能的小 首先我們對損失函式求導: $$ \frac{\partial L}{\partial\omega}=2\left(\omega\sum^n_{i=1}x_i^2-\sum^n_{i=1}(y_i-b)x_i\right)=0 $$ $$ \frac{\partial L}{\partial b}=2\left(nb-\sum^n_{i=1}(y_i-\omega x_i)\right)=0 $$ 求解以後可得: $$ \omega=\frac{\sum^n_{i=1}y_i(x_i-\overline x)}{\sum^n_{i=1}x^2_i-\frac1m\left(\sum^m_{i=1}x_i\right)^2} $$ $$ b = \frac1m\sum^n_{i=1}(y_i-\omega x_i) $$ 其中$\overline x=\frac1n\sum^n_{i=1}x_i$即$\overline x$是$x$的均值 而這就是我們的**最小二乘法**, 求解得到的$w$和$b$就是我們擬合出來的直線的引數. [1]: https://xiaoxiablogs.top/usr/uploads/2020/09/2554413617.png 那麼就下來, 我們來看一看當$X$為多維的情況, 也就是**多元線性迴歸** 與上面的一樣, 我們需要擬合一個直線$w^TX+b$使得大多數的點在直線上或者在直線周圍, 不同的是, 現在我們的$w$是多維的, 而我們的損失函式也就變成了 $$ L=\frac1n\sum^n_{i=1}(y-(w^TX+b))^2 $$ 根據上面的經驗, 我們需要對損失函式求偏導, 在這裡就不贅述了, 大家可