本文來自同步博客。ide
P.S. 不知道怎麼如何更好地顯示數學公式和排版文章。因此若是以爲文章下面格式亂的話請自行跳轉到上述連接。後續我將再也不對數學公式進行截圖,畢竟行內公式截圖的話排版會很亂。看原博客地址會有更好的體驗。spa
上一篇文章介紹如何使用sklearn
進行線性迴歸預測。接下來本文將深刻原理,瞭解線性迴歸是如何工做的。code
基礎概念
線性迴歸爲什麼叫線性?實際上,像在處理Google的股票統計數據時,咱們使用線性迴歸是在這堆數據所在的N維空間中找到一條線來描述這些數據的規律,所以才叫線性迴歸。這個過程稱爲擬合,這條線成爲擬合線。get
這條擬合線上的某個數據點或多或少都會偏離實際統計的值。實際統計數據和擬合線對應數據的差叫殘差。很明顯,殘差能夠反映模型的預測偏差。同步
可是殘差有正有負的,不方便計算。並且實際運用中咱們不須要關注殘差的正負,由於正負並不能描述偏差的大小程度。爲了下降計算複雜性,咱們使用這個差值的平方進行計算。你可能會想到,差值的平方不是把差值給改了嗎,不要緊嗎?答案是:數據確實變了,但沒影響。由於咱們真正使用的是殘差的絕對值,用它描述偏差大小的程度,而對這個絕對值進行平方後有一樣的效果,畢竟y = |x| 與y = x^2有一樣的單調性。博客
結合上述平方的想法,爲了讓預測更加準確,咱們應該選擇一條線,可以使得線上每一個點與實際數據的殘差平方的總和最小。這樣的線才能叫最佳擬合線。數學
構建模型
接下來就是利用統計數據和上述原理來構建模型,也就是找最佳擬合線。it
二維空間中,直線能夠表示爲:io
咱們已經有經過統計獲得的不少份數據Xi和Yi,接下來的目標就是利用這些數據求解參數a和b。ast
求解過程暫時不展開,請參考這個講述求解參數的文章。最終獲得的結果以下圖所示:
至此便可獲得最佳擬合線的參數,代回直線方程中就能夠做爲預測模型,可用於對新的X進行計算從而預測出對應的Y。其中,
上述的這種方法稱爲最小二乘法(Least Squares)。擴展到N維空間,最小二乘法依舊可用,不過我怕陷入數學的漩渦暫時不敢繼續深刻。除此以外,在線性迴歸中求解參數的方法還有「梯度降低法(Gradient Descent)」。
R方理論評估模型
在前一篇文章中提到了模型的準確性accuracy
一詞。實際上accuracy
在統計學中應該稱爲「可決係數」,它的計算方法有兩種。在這裏我嘗試介紹R方理論做爲計算方法。
R方的計算方法以下:
這個式子用1減去y的殘差平方和與y的總方差的比值,y減去widehat{y}也就是殘差,是擬合方程中對數據尚不能解釋到的部分,用1減去不能解釋的部分,那麼剩下的就是能夠解釋的部分。也就是說自變量解釋了因變量變更的百分比的多少,那麼R^2 的值確定是越大越好,意味着該模型把y的變更解釋得好,R^2的範圍顯然是0到1。