Linear Regression 線性迴歸演算法
基本介紹
線性迴歸一般用來解決連續值變數預測問題。是有監督學習。叫線性迴歸,是因為,我們假定自變數和因變數之間是線性相關關係。
線性迴歸
基本形式:
f(x)=w0x0+w1x1+w2x2+...+wnxn
當x0=1 時,w0 就是截距。向量形式:
f(x)=wTx
簡單理解:線性迴歸就是要找到一條直線儘可能的擬合所有的點。
損失函式
對於多元線性迴歸,我們只需要確定
w=[w0,w1,w2...wn] 就能確定f(x 。如何確定最優的)w ,就需要損失函式。這裡我們使用均方誤差得到損失函式。
J(w)=12m∑i=1m(f(xi)−yi)2
f(xi) :當前w 下,預估的y 。
yi :原始的y 。
2 :為了之後計算方便。這裡,我們只需要最小化該損失函式,就能拿到最優
w 。均方誤差對應了歐氏距離。基於均方誤差最小化來求解的方法叫做”最小二乘法”。線上性迴歸中,最小二乘法就是試圖找到一條直線,使得所有樣本到直線上的歐式距離之和最小。
使得
J(w)=12m∑mi=1(f( 最小化來求解xi)−yi)2w 叫做線性迴歸最小二乘的引數估計。這裡J(w) 是關於w 的凸函式,當它關於
w 的導數為零時,得到w 的最優解。對於這種凸函式,只有一個最低點。除了直接求導的方式,當引數非常非常多時,還有一種方式,在計算機的世界裡,可以逐步的去
逼近最低點。我們要做的是以最快的方式去逼近最低點。這裡,我們就用到了梯度下降。梯度下降,就是在每一點,去對每一個
w 求偏導,確定梯度(前進的方向),每次前進一點(步長),去逼近最低點。當此次和上一次前進的差值達到設定的閾值或達到迭代次數,就停止,
取此時的
w 為最接近的w 。這個過程類似於下山,每前進一步,按最陡的方向下山是最快的;梯度的作用就是幫我們找到這個陡的方向。
欠擬合與過擬合
欠擬合:特徵太少,不足以描述樣本。
過擬合:特徵太多,對樣本描述過度。不具有一般性。此時可以用L1或L2正則化給他加一個懲罰項。MLLib中的線性迴歸沒有使用正
則化方法。
舉例:
(1)給你自變數廣告費用(x),讓你預測曝光次數(y)。
(2)根據身高預測體重。
(3)根據面積、臥室數預測房價。