引自https://blog.csdn.net/wishchin/article/details/47948779
回歸分析是建模和分析數據的重要工具。本文解釋了回歸分析的內涵及其優勢,重點總結了應該掌握的線性回歸、邏輯回歸、多項式回歸、逐步回歸、嶺回歸、套索回歸Lasso Regression、ElasticNet回歸、SoftMax回歸等八種最常用的回歸技術及其關鍵要素,最后介紹了選擇正確的回歸模型的關鍵因素。
當然數據並非我想面對的,所謂處理數據的根本目的是為了重建模型的結構,即是根據數據回歸到函數規則,生成函數規則集合,以此構建模型。
原文鏈接:http://news.csdn.net/article_preview.html?preview=1&reload=1&arcid=2825492
什么是回歸分析?
回歸分析是一種預測性的建模技術,它研究的是因變量(目標)和自變量(預測器)之間的關系。這種技術通常用於預測分析,時間序列模型以及發現變量之間的因果關系。例如,司機的魯莽駕駛與道路交通事故數量之間的關系,最好的研究方法就是回歸。
回歸分析是建模和分析數據的重要工具。在這里,我們使用曲線/線來擬合這些數據點,在這種方式下,從曲線或線到數據點的距離差異最小。我會在接下來的部分詳細解釋這一點。
我們為什么使用回歸分析?
如上所述,回歸分析估計了兩個或多個變量之間的關系。下面,讓我們舉一個簡單的例子來理解它:
比如說,在當前的經濟條件下,你要估計一家公司的銷售額增長情況。現在,你有公司最新的數據,這些數據顯示出銷售額增長大約是經濟增長的2.5倍。那么使用回歸分析,我們就可以根據當前和過去的信息來預測未來公司的銷售情況。
使用回歸分析的好處良多。具體如下:
- 它表明自變量和因變量之間的顯著關系;
- 它表明多個自變量對一個因變量的影響強度。
回歸分析也允許我們去比較那些衡量不同尺度的變量之間的相互影響,如價格變動與促銷活動數量之間聯系。這些有利於幫助市場研究人員,數據分析人員以及數據科學家排除並估計出一組最佳的變量,用來構建預測模型。
我們有多少種回歸技術?
有各種各樣的回歸技術用於預測。這些技術主要有三個度量(自變量的個數,因變量的類型以及回歸線的形狀)。我們將在下面的部分詳細討論它們。
對於那些有創意的人,如果你覺得有必要使用上面這些參數的一個組合,你甚至可以創造出一個沒有被使用過的回歸模型。但在你開始之前,先了解如下最常用的回歸方法:
1. Linear Regression線性回歸
它是最為人熟知的建模技術之一。線性回歸通常是人們在學習預測模型時首選的技術之一。在這種技術中,因變量是連續的,自變量可以是連續的也可以是離散的,回歸線的性質是線性的。
線性回歸使用最佳的擬合直線(也就是回歸線)在因變量(Y)和一個或多個自變量(X)之間建立一種關系。
用一個方程式來表示它,即Y=a+b*X + e,其中a表示截距,b表示直線的斜率,e是誤差項。這個方程可以根據給定的預測變量(s)來預測目標變量的值。
一元線性回歸和多元線性回歸的區別在於,多元線性回歸有(>1)個自變量,而一元線性回歸通常只有1個自變量。現在的問題是“我們如何得到一個最佳的擬合線呢?”。
如何獲得最佳擬合線(a和b的值)?
這個問題可以使用最小二乘法輕松地完成。最小二乘法也是用於擬合回歸線最常用的方法。對於觀測數據,它通過最小化每個數據點到線的垂直偏差平方和來計算最佳擬合線。因為在相加時,偏差先平方,所以正值和負值沒有抵消。
我們可以使用R-square指標來評估模型性能。想了解這些指標的詳細信息,可以閱讀:模型性能指標Part 1,Part 2 .
要點:
- 自變量與因變量之間必須有線性關系
- 多元回歸存在多重共線性,自相關性和異方差性。
- 線性回歸對異常值非常敏感。它會嚴重影響回歸線,最終影響預測值。
- 多重共線性會增加系數估計值的方差,使得在模型輕微變化下,估計非常敏感。結果就是系數估計值不穩定
- 在多個自變量的情況下,我們可以使用向前選擇法,向后剔除法和逐步篩選法來選擇最重要的自變量。
2.Logistic Regression邏輯回歸
邏輯回歸是用來計算“事件=Success”和“事件=Failure”的概率。當因變量的類型屬於二元(1 / 0,真/假,是/否)變量時,我們就應該使用邏輯回歸。這里,Y的值從0到1,它可以用下方程表示。
-
odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
-
ln(odds) = ln(p/(1-p))
-
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk
上述式子中,p表述具有某個特征的概率。你應該會問這樣一個問題:“我們為什么要在公式中使用對數log呢?”。
因為在這里我們使用的是的二項分布(因變量),我們需要選擇一個對於這個分布最佳的連結函數。它就是Logit函數。在上述方程中,通過觀測樣本的極大似然估計值來選擇參數,而不是最小化平方和誤差(如在普通回歸使用的)。
要點:
- 它廣泛的用於分類問題。
- 邏輯回歸不要求自變量和因變量是線性關系。它可以處理各種類型的關系,因為它對預測的相對風險指數OR使用了一個非線性的log轉換。
- 為了避免過擬合和欠擬合,我們應該包括所有重要的變量。有一個很好的方法來確保這種情況,就是使用逐步篩選方法來估計邏輯回歸。
- 它需要大的樣本量,因為在樣本數量較少的情況下,極大似然估計的效果比普通的最小二乘法差。
- 自變量不應該相互關聯的,即不具有多重共線性。然而,在分析和建模中,我們可以選擇包含分類變量相互作用的影響。
- 如果因變量的值是定序變量,則稱它為序邏輯回歸。
- 如果因變量是多類的話,則稱它為多元邏輯回歸。
3. Polynomial Regression多項式回歸
對於一個回歸方程,如果自變量的指數大於1,那么它就是多項式回歸方程。如下方程所示:
y=a+b*x^2
在這種回歸技術中,最佳擬合線不是直線。而是一個用於擬合數據點的曲線。
重點:
- 雖然會有一個誘導可以擬合一個高次多項式並得到較低的錯誤,但這可能會導致過擬合。你需要經常畫出關系圖來查看擬合情況,並且專注於保證擬合合理,既沒有過擬合又沒有欠擬合。下面是一個圖例,可以幫助理解:
- 明顯地向兩端尋找曲線點,看看這些形狀和趨勢是否有意義。更高次的多項式最后可能產生怪異的推斷結果。
4. Stepwise Regression逐步回歸
在處理多個自變量時,我們可以使用這種形式的回歸。在這種技術中,自變量的選擇是在一個自動的過程中完成的,其中包括非人為操作。
這一壯舉是通過觀察統計的值,如R-square,t-stats和AIC指標,來識別重要的變量。逐步回歸通過同時添加/刪除基於指定標准的協變量來擬合模型。下面列出了一些最常用的逐步回歸方法:
- 標准逐步回歸法做兩件事情。即增加和刪除每個步驟所需的預測。
- 向前選擇法從模型中最顯著的預測開始,然后為每一步添加變量。
- 向后剔除法與模型的所有預測同時開始,然后在每一步消除最小顯着性的變量。
這種建模技術的目的是使用最少的預測變量數來最大化預測能力。這也是處理高維數據集的方法之一。
5. Ridge Regression嶺回歸
嶺回歸分析是一種用於存在多重共線性(自變量高度相關)數據的技術。在多重共線性情況下,盡管最小二乘法(OLS)對每個變量很公平,但它們的差異很大,使得觀測值偏移並遠離真實值。嶺回歸通過給回歸估計上增加一個偏差度,來降低標准誤差。
上面,我們看到了線性回歸方程。還記得嗎?它可以表示為:
y=a+ b*x
這個方程也有一個誤差項。完整的方程是:
y=a+b*x+e (error term), [error term is the value needed to correct for a prediction error between the observed and predicted value]
=> y=a+y= a+ b1x1+ b2x2+....+e, for multiple independent variables.
在一個線性方程中,預測誤差可以分解為2個子分量。一個是偏差,一個是方差。預測錯誤可能會由這兩個分量或者這兩個中的任何一個造成。在這里,我們將討論由方差所造成的有關誤差。
嶺回歸通過收縮參數λ(lambda)解決多重共線性問題。看下面的公式
在這個公式中,有兩個組成部分。第一個是最小二乘項,另一個是β2(β-平方)的λ倍,其中β是相關系數。為了收縮參數把它添加到最小二乘項中以得到一個非常低的方差。
要點:
- 除常數項以外,這種回歸的假設與最小二乘回歸類似;
- 它收縮了相關系數的值,但沒有達到零,這表明它沒有特征選擇功能
- 這是一個正則化方法,並且使用的是L2正則化。
6. Lasso Regression套索回歸
它類似於嶺回歸,Lasso (Least Absolute Shrinkage and Selection Operator)也會懲罰回歸系數的絕對值大小。此外,它能夠減少變化程度並提高線性回歸模型的精度。看看下面的公式:
Lasso 回歸與Ridge回歸有一點不同,它使用的懲罰函數是絕對值,而不是平方。這導致懲罰(或等於約束估計的絕對值之和)值使一些參數估計結果等於零。使用懲罰值越大,進一步估計會使得縮小值趨近於零。這將導致我們要從給定的n個變量中選擇變量。
要點:
- 除常數項以外,這種回歸的假設與最小二乘回歸類似;
- 它收縮系數接近零(等於零),這確實有助於特征選擇;
- 這是一個正則化方法,使用的是L1正則化;
· 如果預測的一組變量是高度相關的,Lasso 會選出其中一個變量並且將其它的收縮為零。
7.ElasticNet回歸
ElasticNet是Lasso和Ridge回歸技術的混合體。它使用L1來訓練並且L2優先作為正則化矩陣。當有多個相關的特征時,ElasticNet是很有用的。Lasso 會隨機挑選他們其中的一個,而ElasticNet則會選擇兩個。
Lasso和Ridge之間的實際的優點是,它允許ElasticNet繼承循環狀態下Ridge的一些穩定性。
要點:
- 在高度相關變量的情況下,它會產生群體效應;
- 選擇變量的數目沒有限制;
- 它可以承受雙重收縮。
除了這7個最常用的回歸技術,你也可以看看其他模型,如Bayesian、Ecological和Robust回歸。
8.用於多類分類的SoftMax回歸
參考鏈接:http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
我們介紹Softmax回歸模型,該模型是logistic回歸模型在多分類問題上的推廣,在多分類問題中,類標簽 可以取兩個以上的值。 Softmax回歸模型對於諸如MNIST手寫數字分類等問題是很有用的,該問題的目的是辨識10個不同的單個數字。Softmax回歸是有監督的,不過后面也會介紹它與深度學習/無監督學習方法的結合。(譯者注: MNIST 是一個手寫數字識別庫,由NYU 的Yann LeCun 等人維護。http://yann.lecun.com/exdb/mnist/ )
回想一下在 logistic 回歸中,我們的訓練集由 個已標記的樣本構成:
其中輸入特征。(我們對符號的約定如下:特征向量
的維度為
,其中
對應截距項 。) 由於 logistic 回歸是針對二分類問題的,因此類標記
。
我們將訓練模型參數 ,使其能夠最小化代價函數 :
在 softmax回歸中,我們解決的是多分類問題(相對於 logistic 回歸解決的二分類問題),類標 可以取
個不同的值(而不是 2 個)。因此,對於訓練集
,我們有
。(注意此處的類別下標從 1 開始,而不是 0)。例如,在 MNIST 數字識別任務中,我們有
個不同的類別。
對於給定的測試輸入 ,我們想用假設函數針對每一個類別j估算出概率值
。也就是說,我們想估計
的每一種分類結果出現的概率。因此,我們的假設函數將要輸出一個
維的向量(向量元素的和為1)來表示這
個估計的概率值。 具體地說,我們的假設函數
形式如下:
其中 是模型的參數。請注意
這一項對概率分布進行歸一化,使得所有概率之和為 1 。
為了方便起見,我們同樣使用符號 來表示全部的模型參數。在實現Softmax回歸時,將
用一個
的矩陣來表示會很方便,該矩陣是將
按行羅列起來得到的,如下所示:
代價函數
現在我們來介紹 softmax 回歸算法的代價函數。在下面的公式中, 是示性函數,其取值規則為:
值為真的表達式
, 值為假的表達式
。舉例來說,表達式
的值為1 ,
的值為 0。我們的代價函數為:
值得注意的是,上述公式是logistic回歸代價函數的推廣。logistic回歸代價函數可以改為:
可以看到,Softmax代價函數與logistic 代價函數在形式上非常類似,只是在Softmax損失函數中對類標記的 個可能值進行了累加。注意在Softmax回歸中將
分類為類別
的概率為:
.
對於 的最小化問題,目前還沒有閉式解法。因此,我們使用迭代的優化算法(例如梯度下降法,或 L-BFGS)。經過求導,我們得到梯度公式如下:
讓我們來回顧一下符號 "" 的含義。
本身是一個向量,它的第
個元素
是
對
的第
個分量的偏導數。
有了上面的偏導數公式以后,我們就可以將它代入到梯度下降法等算法中,來最小化 。 例如,在梯度下降法的標准實現中,每一次迭代需要進行如下更新:
(
)。
當實現 softmax 回歸算法時, 我們通常會使用上述代價函數的一個改進版本。具體來說,就是和權重衰減(weight decay)一起使用。我們接下來介紹使用它的動機和細節。
Softmax回歸模型參數化的特點
Softmax 回歸有一個不尋常的特點:它有一個“冗余”的參數集。為了便於闡述這一特點,假設我們從參數向量 中減去了向量
,這時,每一個
都變成了
(
)。此時假設函數變成了以下的式子:
換句話說,從 中減去
完全不影響假設函數的預測結果!這表明前面的 softmax 回歸模型中存在冗余的參數。更正式一點來說, Softmax 模型被過度參數化了。對於任意一個用於擬合數據的假設函數,可以求出多組參數值,這些參數得到的是完全相同的假設函數
。
進一步而言,如果參數 是代價函數
的極小值點,那么
同樣也是它的極小值點,其中
可以為任意向量。因此使
最小化的解不是唯一的。(有趣的是,由於
仍然是一個凸函數,因此梯度下降時不會遇到局部最優解的問題。但是 Hessian 矩陣是奇異的/不可逆的,這會直接導致采用牛頓法優化就遇到數值計算的問題)
注意,當 時,我們總是可以將
替換為
(即替換為全零向量),並且這種變換不會影響假設函數。因此我們可以去掉參數向量
(或者其他
中的任意一個)而不影響假設函數的表達能力。實際上,與其優化全部的
個參數
(其中
),我們可以令
,只優化剩余的
個參數,這樣算法依然能夠正常工作。
在實際應用中,為了使算法實現更簡單清楚,往往保留所有參數 ,而不任意地將某一參數設置為 0。但此時我們需要對代價函數做一個改動:加入權重衰減。權重衰減可以解決 softmax 回歸的參數冗余所帶來的數值問題。
9.Softmax回歸與Logistic 回歸的關系
當類別數 時,softmax 回歸退化為 logistic 回歸。這表明 softmax 回歸是 logistic 回歸的一般形式。具體地說,當
時,softmax 回歸的假設函數為:
利用softmax回歸參數冗余的特點,我們令 ,並且從兩個參數向量中都減去向量
,得到:
因此,用 來表示
,我們就會發現 softmax 回歸器預測其中一個類別的概率為
,另一個類別概率的為
,這與 logistic回歸是一致的。
如何獲得回歸解?
回歸問題是統計學里面最基礎的問題。在統計學里面,一般采用最大似然和最小二乘法直接導出解析解。具體可以參考任何一般統計學的教材。其解析解里面有一個矩陣的逆。求逆和偽逆運算有一些快速算法可以利用。所以對於數據量小的回歸問題,直接用解析解就可以快速的得到模型的參數。而對於數據挖掘,海量數據導致內存的開銷巨大,這時候直接求解析解是不現實的。於是,在機器學習相關的教程里面,對於回歸問題,描述的都是迭代算法。基於隨機梯度下降的迭代算法的好處是,內存開銷小。
如何正確選擇回歸模型?
當你只知道一個或兩個技術時,生活往往很簡單。我知道的一個培訓機構告訴他們的學生,如果結果是連續的,就使用線性回歸。如果是二元的,就使用邏輯回歸!然而,在我們的處理中,可選擇的越多,選擇正確的一個就越難。類似的情況下也發生在回歸模型中。
在多類回歸模型中,基於自變量和因變量的類型,數據的維數以及數據的其它基本特征的情況下,選擇最合適的技術非常重要。以下是你要選擇正確的回歸模型的關鍵因素:
- 數據探索是構建預測模型的必然組成部分。在選擇合適的模型時,比如識別變量的關系和影響時,它應該首選的一步。
- 比較適合於不同模型的優點,我們可以分析不同的指標參數,如統計意義的參數,R-square,Adjusted R-square,AIC,BIC以及誤差項,另一個是Mallows' Cp准則。這個主要是通過將模型與所有可能的子模型進行對比(或謹慎選擇他們),檢查在你的模型中可能出現的偏差。
- 交叉驗證是評估預測模型最好額方法。在這里,將你的數據集分成兩份(一份做訓練和一份做驗證)。使用觀測值和預測值之間的一個簡單均方差來衡量你的預測精度。
- 如果你的數據集是多個混合變量,那么你就不應該選擇自動模型選擇方法,因為你應該不想在同一時間把所有變量放在同一個模型中。
- 它也將取決於你的目的。可能會出現這樣的情況,一個不太強大的模型與具有高度統計學意義的模型相比,更易於實現。
- 回歸正則化方法(Lasso,Ridge和ElasticNet)在高維和數據集變量之間多重共線性情況下運行良好。
原文鏈接:7 Types of Regression Techniques you should know!(譯者/劉帝偉 審校/劉翔宇、朱正貴 責編/周建丁)
譯者簡介: 劉帝偉,中南大學軟件學院在讀研究生,關注機器學習、數據挖掘及生物信息領域。