1、PCA降維
降維有什么作用呢?
數據在低維下更容易處理、更容易使用;
相關特征,特別是重要特征更能在數據中明確的顯示出來;如果只有兩維或者三維的話,更便於可視化展示;
去除數據噪聲
降低算法開銷
常見的降維算法有主成分分析(principal component analysis,PCA)、因子分析(Factor Analysis)和獨立成分分析(Independent Component Analysis,ICA),其中PCA是目前應用最為廣泛的方法。
在PCA中,數據從原來的坐標系轉換到新的坐標系,新坐標系的選擇是由數據本身決定的。第一個坐標軸的選擇是原始數據中方差最大的方向,從數據角度上來講,這其實就是最重要的方向,
即下圖總直線B的方向。第二個坐標軸則是第一個的垂直或者說正交(orthogonal)方向,即下圖中直線C的方向。該過程一直重復,重復的次數為原始數據中特征的數目。
而這些方向所表示出的數據特征就被稱為“主成分”。
Principal Component Analysis(PCA)是最常用的線性降維方法,它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,並期望在所投影的維度上數據的方差最大,
以此使用較少的數據維度,同時保留住較多的原數據點的特性。
通俗的理解,如果把所有的點都映射到一起,那么幾乎所有的信息(如點和點之間的距離關系)都丟失了,而如果映射后方差盡可能的大,那么數據點則會分散開來,以此來保留更多的信息。可以證明,PCA是丟失原始數據信息最少的一種線性降維方式。(實際上就是最接近原始數據,但是PCA並不試圖去探索數據內在結構)
2、Lasso算法
參考自:http://blog.csdn.net/slade_sha/article/details/53164905
先看一波過擬合:
圖中,紅色的線存在明顯的過擬合,綠色的線才是合理的擬合曲線,為了避免過擬合,我們可以引入正則化。
下面可以利用正則化來解決曲線擬合過程中的過擬合發生,存在均方根誤差也叫標准誤差,即為√[∑di^2/n]=Re,n為測量次數;di為一組測量值與真值的偏差。
實際考慮回歸的過程中,我們需要考慮到誤差項,
這個和簡單的線性回歸的公式相似,而在正則化下來優化過擬合這件事情的時候,會加入一個約束條件,也就是懲罰函數:
這邊這個懲罰函數有多種形式,比較常用的有l1,l2,大概有如下幾種:
講一下比較常用的兩種情況,q=1和q=2的情況:
q=1,也就是今天想講的lasso回歸,為什么lasso可以控制過擬合呢,因為在數據訓練的過程中,可能有幾百個,或者幾千個變量,再過多的變量衡量目標函數的因變量的時候,可能造成結果的過度解釋,而通過q=1下的懲罰函數來限制變量個數的情況,可以優先篩選掉一些不是特別重要的變量,見下圖:
作圖只要不是特殊情況下與正方形的邊相切,一定是與某個頂點優先相交,那必然存在橫縱坐標軸中的一個系數為0,起到對變量的篩選的作用。
q=2的時候,其實就可以看作是上面這個藍色的圓,在這個圓的限制下,點可以是圓上的任意一點,所以q=2的時候也叫做嶺回歸,嶺回歸是起不到壓縮變量的作用的,在這個圖里也是可以看出來的。
lasso回歸:
lasso回歸的特色就是在建立廣義線型模型的時候,這里廣義線型模型包含一維連續因變量、多維連續因變量、非負次數因變量、二元離散因變量、多元離散因變,除此之外,無論因變量是連續的還是離散的,lasso都能處理,總的來說,lasso對於數據的要求是極其低的,所以應用程度較廣;除此之外,lasso還能夠對變量進行篩選和對模型的復雜程度進行降低。這里的變量篩選是指不把所有的變量都放入模型中進行擬合,而是有選擇的把變量放入模型從而得到更好的性能參數。 復雜度調整是指通過一系列參數控制模型的復雜度,從而避免過度擬合(Overfitting)。 對於線性模型來說,復雜度與模型的變量數有直接關系,變量數越多,模型復雜度就越高。 更多的變量在擬合時往往可以給出一個看似更好的模型,但是同時也面臨過度擬合的危險。
lasso的復雜程度由λ來控制,λ越大對變量較多的線性模型的懲罰力度就越大,從而最終獲得一個變量較少的模型。除此之外,另一個參數α來控制應對高相關性(highly correlated)數據時模型的性狀。 LASSO回歸α=1,Ridge回歸α=0,這就對應了懲罰函數的形式和目的。