標籤:約束 雜訊 嶺迴歸 調整 可視化 藍色 iss 去除 fill
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,這就對應了懲罰函數的形式和目的。
機器學習--PCA降維和Lasso演算法