線性迴歸算法(Linear Regression),即LR算法。算法
再講解LR算法以前,咱們先學習一下什麼是線性?什麼是非線性?機器學習
咱們首先用弄清楚什麼是線性,什麼是非線性。函數
- 線性函數的定義是:一階或零階多項式。 - 特徵是一維時,線性模型在二維空間構成一條直線; - 特徵是二維時,線性模型在三維空間中構成一個平面; - 特徵是三維時,則最終模型在四維空間中構成一個體;以此類推…
那麼迴歸又是什麼意思呢?學習
- 迴歸:人們在測量事物的時候由於客觀條件所限,求得的都是測量值,而不是事物真實的值。 - 爲了可以獲得真實值,無限次的進行測量,最後經過這些測量數據計算迴歸到真實值,這就是迴歸的由來。
通俗的說就是用一個函數去逼近這個真實值,那又有人問了,線性迴歸不是用來作預測嗎?是的,經過大量的數據咱們是能夠預測到真實值的。優化
線性迴歸:就是可以用一個直線較爲精確地描述數據之間的關係,這樣當出現新的數據的時候,就可以預測出一個簡單的值。3d
線性迴歸纔是真正用於迴歸的,而不像logistic迴歸是用於分類,基本思想是用梯度降低法對最小二乘法形式的偏差函數進行優化。code
尋找到數據與數據之間的規律所在,從而就能夠模擬出結果,也就是對結果進行預測。blog
解決的就是經過已知的數據獲得未知的結果。例如:對房價的預測、判斷信用評價、電影票房預估等。io
在中學的時候,咱們都學過二元一次方程。咱們將y做爲因變量,x做爲自變量,獲得方程:function
y = ax + b
當給定參數 a
和 b
的時候,畫在座標圖內是一條直線(這就是「線性」的含義)。
當咱們只用一個x來預測y,就是一元線性迴歸。
線性迴歸就是要找一條直線,而且讓這條直線儘量地擬合圖中的數據點。
線性迴歸的模型形如:
線性迴歸得出的模型不必定是一條直線:
(1)在只有一個變量的時候,模型是平面中的一條直線;
(2)有兩個變量的時候,模型是空間中的一個平面;
(3)有更多變量時,模型將是更高維的。
實際上,線性迴歸中一般使用殘差平方和,即點到直線的平行於y軸的距離而不用垂線距離,殘差平方和除以樣本量n就是均方偏差。
均方偏差做爲線性迴歸模型的損失函數(cost function)。使全部點到直線的距離之和最小,就是使均方偏差最小化,這個方法叫作最小二乘法。
損失函數公式:
由於
最後經過求解,獲得w及b的計算公式分別以下:
在線性迴歸中,最小二乘法就是試圖找到一條直線,使全部樣本到直線的歐式距離最小以後最小。
梯度是一個向量,即有方向有大小,它的方向是最大方向導數的方向,它的值是最大方向導數的值。
從任意點開始,在該點對目標函數求導,沿着導數方向(梯度)「走」(降低)一個給定步長,如此循環迭代,直至「走」到導數爲0的位置,則達到極小值。
假設咱們找到了最佳擬合的直線方程 :
y = ax+ b
線性迴歸的幾個特色:
(1)思想簡單,實現容易。建模迅速,對於小數據量、簡單的關係頗有效;
(2)是許多強大的非線性模型的基礎。
(3)線性迴歸模型十分容易理解,結果具備很好的可解釋性,有利於決策分析。
(4)蘊含機器學習中的不少重要思想。
(5)能解決迴歸問題。
(1)對於非線性數據或者數據特徵間具備相關性多項式迴歸難以建模.
(2)難以很好地表達高度複雜的數據。