1. 程式人生 > >Linear Regression 線性迴歸演算法

Linear Regression 線性迴歸演算法

基本介紹

  線性迴歸一般用來解決連續值變數預測問題。是有監督學習。叫線性迴歸,是因為,我們假定自變數和因變數之間是線性相關關係。

線性迴歸

  基本形式:

f(x)=w0x0+w1x1+w2x2+...+wnxn
  當x0=1時,w0就是截距。

  向量形式:

f(x)=wTx
  簡單理解:線性迴歸就是要找到一條直線儘可能的擬合所有的點。

  linearRegression
  

損失函式

  對於多元線性迴歸,我們只需要確定w=[w0,w1,w2...wn]就能確定f(x

)。如何確定最優的w,就需要損失函式。這裡我們使用

均方誤差得到損失函式。

J(w)=12mi=1m(f(xi)yi)2
  f(xi):當前w下,預估的y

  yi:原始的y

  2:為了之後計算方便。

  這裡,我們只需要最小化該損失函式,就能拿到最優w。均方誤差對應了歐氏距離。基於均方誤差最小化來求解的方法叫做”最小二

乘法”。線上性迴歸中,最小二乘法就是試圖找到一條直線,使得所有樣本到直線上的歐式距離之和最小。

  使得J(w)=12mmi=1(f(

xi)yi)2最小化來求解w叫做線性迴歸最小二乘的引數估計。這裡J(w)是關於w的凸函式,當它

關於w的導數為零時,得到w的最優解。

  對於這種凸函式,只有一個最低點。除了直接求導的方式,當引數非常非常多時,還有一種方式,在計算機的世界裡,可以逐步的去

逼近最低點。我們要做的是以最快的方式去逼近最低點。這裡,我們就用到了梯度下降。梯度下降,就是在每一點,去對每一個w求偏

導,確定梯度(前進的方向),每次前進一點(步長),去逼近最低點。當此次和上一次前進的差值達到設定的閾值或達到迭代次數,就停止,

取此時的w

為最接近的w。這個過程類似於下山,每前進一步,按最陡的方向下山是最快的;梯度的作用就是幫我們找到這個陡的方向。

欠擬合與過擬合

  欠擬合:特徵太少,不足以描述樣本。

  過擬合:特徵太多,對樣本描述過度。不具有一般性。此時可以用L1或L2正則化給他加一個懲罰項。MLLib中的線性迴歸沒有使用正

則化方法。

舉例:

  (1)給你自變數廣告費用(x),讓你預測曝光次數(y)。

  (2)根據身高預測體重。

  (3)根據面積、臥室數預測房價。