1. 程式人生 > >回歸算法

回歸算法

擬合 得出 針對 模型 誤差 也不會 tar 銷量 最好

  • 1.什麽是回歸?
  • 2.回歸的類型有哪些?
  • 3.線性回歸的分析
  • 4.總結

1.什麽是回歸?

回歸分析是在一系列的已知或能通過獲取的自變量與因變量之間的相關關系的基礎上,建立變量之間的回歸方程,把回歸方程作為算法模型,通過其來實現對新自變量得出因變量的關系。因此回歸分析是實用的預測模型或分類模型。

凡事皆有因果關系,解讀“回歸”二字,其實就是由因回溯果的過程,最終得到的因與果的關系,就稱為回歸。回歸其實就是一個名詞,沒有特別的含義。

下面用一個大眾的例子來更加形象的解釋何為回歸。 【根據銷售產品預測營銷額(實際中,此類數據挖掘問題可幫助商家合理的進貨與最大化利潤)】

技術分享圖片

這是一部分數據。觀察數據一共有3個維度的因素影響最終的營銷額。先拿部分數據集出來可視化,觀察自變量與因變量間的關系。

技術分享圖片

通過Python可視化數據,可以看到產品銷量與營銷額的關系看似是線性的。其實實際中真的是這樣做的,只不過在數據的獲取和特征選擇上做更多的功夫。所以,在此可以通過建立回歸模型來分析這個業務問題。

這裏先不考慮如何寫代碼的細節,直接上圖清晰的看出回歸模型的由來與作用。

技術分享圖片

由以上的圖片看出來,由各個產品的銷量與營銷額建立回歸模型:

  • y = 0.04695x1 + 0.17659x2 + 0.00185*x3 + 2.9372

相信,看到這裏應該對回歸有了基本的了解了,實質就是通過對影響數據與被影響數據之間的關系建立數學模型(幾何上是直線或曲線),然後使用這個模型來預測或分類。

2.回歸的類型有哪些?

  • 1.線性回歸
  • 2.曲線回歸
  • 3.二元logistic回歸
  • 4.多元logistic回歸
    • 依據相關關系中自變量的個數不同分類,可分為一元回歸分析預測法和多元回歸分析預測法。
    • 依據自變量和因變量之間的相關關系不同,可分為線性回歸預測和非線性回歸預測。
    • 在這裏要註意註意註意,線性回歸的意思不是指樣本的線性(樣本可以是非線性的),而是指對參數theta的線性

3.線性回歸的分析

下面對只對線性回歸做分析,因為在實際解決問題中,一般是選用線性回歸的,因為要節省計算量和省去模型的復雜度,很大時候簡單就是美呢。

  • 若只有一維度特征值回歸模型是

技術分享圖片

  • 若有兩維特征的線性回歸模型是

技術分享圖片

  • 若有n多維特征的線性回歸模型是(並把行向量轉置為列向量,簡化書寫)

技術分享圖片

線性回歸模型建立一句話概括:通過大量的訓練出一個與數據擬合效果最好的模型,實質就是求解出每個特征自變量的權值θ。

當然在訓練的過程中,特征的選擇,擬合優化等都是要考慮的,因為不可能訓練一個模型要一個月把?更不可能訓練出來一個與真實情況不適應的模型吧?我們要利用一些算法和工具來更快更好的訓練出適用的線性回歸模型。

我們要做的工作是確定每個權值θ或者通過算法逼近真實的權值θ,針對這兩種情況,誕生出兩種常用的解決方法:最小二乘法和梯度下降法。

3.1求解線性回歸模型

在實際線性回歸的擬合中,多多少少都會有誤差的,不可能完全擬合,而且我們也不會追求完全擬合(誤差為0),因為這樣雖然對訓練數據有很好的擬合效果,但是對於測試數據和預測數據就是過擬合。在訓練模型的時候要註意這點(做人也是一樣,萬事給自己留一條退路)。因此回歸方程增加誤差參數後為 技術分享圖片

誤差ε是獨立同分布的,服從均值為0,方差為某定值μ平方的高斯分布。(這是一個假設),這是因為中心極限定理。在實際中,很多隨機的現象可看做是眾多因素的獨立影響的綜合反映,往往近似服從正態分布。 技術分享圖片

上面的式子可看做是似然函數。似然函數其實是一種轉換思想的方法。對於上面的式子,我們本來相求的是當y最小的時候,確定各個權值θ,由此確定線性回歸方程。但是可以利用極大似然估計來求解,當求出或逼近得出各權值θ使誤差ξ最小時,這時的y即線性回歸方程就是我們想要的線性回歸模型。這樣就把問題轉換為如何求解當θ是什麽值時誤差ε最小。

上面也說過了,誤差服從正態分布,因此可表達為: 技術分享圖片

轉換一下形式可得出下式: 技術分享圖片

上式意思為當θ為何值時使xi得到最小的yi的最大概率。這是一個特征向量的表示方法,那麽全部的特征向量的表示方法是:

技術分享圖片

這時,讓我們求θ的值,想到什麽方法?自然反應是求導。在駐點的時候才有會極值,在此也才會有最小值。但是乍一看,這式子很難求導呢,因為涉及到累乘。通常是把普通的似然函數轉換為對數似然函數,把累乘轉換為累加來求解。通過對數把乘法轉換為加法來方便求導是一種很常用的方法。 技術分享圖片

那麽此時就得到最終需要求導的函數表達式(除去常數項)即(預測值-真實值)**2符合觀察吧,可表達為 技術分享圖片

3.2最小二乘法

思想是在獲得損失函數(在此是上面的目標函數)後,對其求導,獲得n個方程,建立方程組來求解。

此式子就是最終要求解的目標函數,把其轉換為向量表達的形式(矩陣的平方等於矩陣的轉置*自身)。 技術分享圖片

對其求偏導得。 技術分享圖片

至此,我們得到了最終要確定θ的目標函數.求解此目標函數有兩種常用的方法:最小二乘法和梯度下降法。

對上面的目標函數轉換一下:

技術分享圖片

但是一般在大數據的情況下不使用最小二乘法,因為它的計算繁瑣,假如有n多維數據,那麽建立的方程組就會很多,計算量會非常大。一般在大數據和機器學習中,會使用優化的求解方法——梯度下降法。

3.3梯度下降法

梯度下降法是一種叠代求最優(全局最優(如果是凸函數)or局部最優(非凸函數))的算法。在大數據情況下,數據的特征維度很多維,那麽此時對其使用最小二乘法計算量會很大。而且機器學習的思想也是通過計算機來自我叠代運算求出最優。那麽梯度下降法就是一種很好的應用了。

梯度下降法的詳細介紹請看另外一篇博文 這裏只用一張圖來介紹介紹。 技術分享圖片

人在山頂下,有n多條路徑下到山的最底部。如果運用梯度下降法來計算路徑的話。其主要思想是:人從山頂當前位置計算所有方向的偏導(即對各個方向維度求偏導),求出當前位置的各個偏導後,得到各個偏導函數的最小值,最小值即當前位置的梯度(因為這裏是要找的是最小值,所以應該是梯度的反方向,所以稱為梯度下降法。)。一致叠代的計算各個位置的梯度,那麽總的趨勢肯定是沿著下降的趨勢的,叠代停止的條件是走到最低處或者叠代條件結束(比如叠代次數或者近似於最低處)。

3.4擬合效果的評價

總樣本平方和TSS 技術分享圖片

殘差平方和RSS 技術分享圖片

擬合評價參數 技術分享圖片

R越大,擬合效果越好。R的最優值為1。

針對最小二乘法和梯度下降法做一個總結:

只要特征變量的數目不大,標準方程是一個很好的計算參數θ的方法。一般地,特征變量數量小於一萬,通常使用標準方程法,而不使用梯度下降法。

但是算法越復雜,例如邏輯回歸算法,並不能使用標準方程法。對於那些更復雜的學習算法,將不得不仍然使用梯度下降法。因此,梯度下降法是一個非常有用的算法,可以用在有大量特征變量的線性回歸問題。

4.總結

回歸模型能夠解決預測和分類問題。根據自變量的個數分為一元和多元回歸;根據是否線性關系分為線性回歸和非線性回歸。在求解回歸模型時要在特定的情況下選用對應的方法,在維度小或線性回歸時可選用最小二乘法,但是在Logistic回歸時應選用梯度下降法。

回歸算法