天天看點

回歸分析(regression analysis)

名詞解釋:

它基于觀測資料建立變量間适當的依賴關系,以分析資料内在規律,并可用于預報、控制等問題。

回歸分析是确定兩種或兩種以上變數間互相依賴的定量關系的一種統計分析方法。運用十分廣泛,回歸分析按照涉及的自變量的多少,可分為一進制回歸分析和多元回歸分析;按照自變量和因變量之間的關系類型,可分為線性回歸分析和非線性回歸分析。如果在回歸分析中,隻包括一個自變量和一個因變量,且二者的關系可用一條直線近似表示,這種回歸分析稱為一進制線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關系,則稱為多元線性回歸分析。

應用了解:

已知多個觀測資料(x,y),想找到x和y之間的一種函數的對應關系,y=f(x);一般先通過畫(x,y)的散點圖,先進行直覺(就是看)的分析,若x和y之間大題呈現一條直線,則可以認為x和y之間是一種線性的函數關系,則用一次函數(簡單的線性函數)f(x)=ax+b,來具體化x和y的函數關系,稱為線性回歸分析;若散點圖的直覺(就是看)的分析,x和y大體上不是直線關系,而是一種曲線走向,則此時用非線性函數,例如二次函數,指數函數,對數函數具體化x和y的關系能夠更好“估計”x和y的真實關系。

執行個體講解分析:

http://wenku.baidu.com/view/bc43d7d7f8c75fbfc77db29c.html

課程案例講解:

本題給出的是50個資料樣本點,其中x為這50個小朋友到的年齡,年齡為2歲到8歲,年齡可有小數形式呈現。Y為這50個小朋友對應的身高,當然也是小數形式表示的。現在的問題是要根據這50個訓練樣本,估計出3.5歲和7歲時小孩子的身高。

通過畫出訓練樣本點的分布憑直覺可以發現這是一個典型的線性回歸問題。

已知50個樣本點(Xi,Yi),求直線函數Y=aX+b的最佳參數a,b;使其為x和y線性關系的最佳估計參數。

求解方法:

1,理論分析法,通過樣本矩陣的運算,直接求解參數a,b。具體參見最小二乘回歸分析。

此法具有速度快,結果優的優點。

2,優化法(梯度下降法)

随機初始a和b的值,然後計算所有樣本的誤內插補點的平方和error,作為損失函數J(a,b),通過優化算法——梯度下降法,修改參數a,b;然後再次計算error,然後再次調節a,b值,如此循環疊代調節,最後算法會收斂到一個最小值(有時局部最小值),即為一個使error項最小的參數a,b組合。

具體過程及代碼參見:

Andrew ng的課程

http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html

參考tornadomeet原文,

http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2961660.html

梯度下降算法分析:

經過理論分析的算法一和梯度算法二,所得的最終a,b參數值不同,但是預測時兩個的預測值是相同的;也就是說,存在a,b的不同組合使Y=aX+b的估計結果“滿意“;

回歸分析(regression analysis)

例如上圖為誤差平方和函數,即損失函數J(a,b)的三維圖像,損失值随着a,b變化的走向圖;

從中可以看出函數J為一個凸函數(大多數為讓人頭痛的非凸函數),是以通過梯度下降算法可以得到一個全局的最優解。

這裡估計有人會提問了,既然理論分析算法一,可以快速高效的得到最好的a,b組合,為什麼還要用複雜的梯度下降算法來計算呢。其實這裡就是我想要重點介紹的了,因為美麗的理論分析算法,雖然嚴謹但是普适性很差,智能應用線上性拟合,對于一些非線性拟合,或者更複雜的問題,則隻能幹瞪眼了,如果拿手機來做個類比的化,那就是手機中的魅族了,小而美;而梯度下降算法,具有很強的普遍性,由于其把一個類似估計拟合的問題,轉化成為一個優化誤差平方和,求誤差平方和極小值問題,而優化求極小值問題中梯度下降算法是一個經典實用的算法(也存在問題,以後在詳述),故可以很容易的求解問題。

繼續閱讀