本文有比較多的轉載其他研究人員的博客
https://blog.csdn.net/u014772862/article/details/52335970
作爲一名機器學習的科研人員,之前在推薦系統的開發和工作中,學習了PCA(主成分分析)與SVD(奇異值分解)方面的技術,但是還沒有寫過總結性的文章,此次,本人總結一些關於降維技術的調研,希望大家多多指教。
降維方法一般分爲線性降維方法和非線性降維方法,如下圖所示:
在機器學習中,說到降維,其目的是進行特徵選擇和特徵提取,注意特徵選擇和特徵提取這二者的不同之處:
(1)特徵選擇:選擇重要特徵子集,並刪除其餘特徵。
(2)特徵提取:由原始特徵形成較少的新特徵。
在特徵提取中,我們要找到k個新的維度的集合,這些維度是原來k個維度的組合,這個方法可以是監督的,也可以是非監督的,
其中,pca是unsupervised的降維方法,lda(線性判別分析)是supervised的方法,這兩個都是線性投影來做降維的。
另外,因子分析,和多維標定(mds)也是unsupervised的線性降爲方法。
【降維的目的】
1.減少預測變量的個數;
2.確保這些變量是相互獨立的;
3.提供一個框架來解釋結果。
本文中,列出了幾種常見的降維方法,包括Lasso,PCA,小波分析,LDA(線性判別分析), SVD(奇異值分解),拉普拉斯特徵映射,SparseAutoEncoder(稀疏編碼),局部線性嵌入LLE,等距映射Isomap等。
(一)LASSO:通過參數縮減實現降維
LASSO(Least absolute shrinkage and selection operator) 是一種壓縮估計,通過在cost function中構造一個正則化項,從而訓練到一個較爲精煉的模型,使得壓縮一些係數(設定一些係數爲零),是一種有偏估計。Lasso 的基本思想:在迴歸係數的絕對值之和小於一個常數的約束條件下,使殘差平方和最小化(構造拉格朗日函數解決),從而產生某些嚴格等於 0 的迴歸係數,得到可解釋的模型。
(二)PCA:通過提取線性無關組做降維
PCA(Principal Component Analysis),通過線性變換,將原始數據變換爲一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維。 設有m條n維數據,
1)將原始數據按列組成m行n列矩陣X2)將X的每一列進行零均值化,即減去這一行的均值;
3)求出協方差矩陣C;
4)求出協方差矩陣的特徵值及對應的特徵向量;
5)將特徵向量按對應的特徵值大小從左到右排成矩陣,取前k列組成矩陣P(n*k);
6)Y=XP,即爲降維到k維後的數據
PCA把原先的n個特徵用數目更少的k個特徵取代,新特徵是舊特徵的線性組合,這些線性組合最大化樣本方差,儘量使新的k個特徵互不相關。從舊特徵到新特徵的映射捕獲數據中的固有變異性。
PCA降維過程請參考http://www.cnblogs.com/zhangchaoyang/articles/2222048.html
(三)聚類分析
將個體(樣品)或者對象(變量)按相似程度(距離遠近)劃分類別,使得同一類中的元素之間的相似性比其他類的元素的相似性更強,使類間元素的同質性最大化和類間元素的異質性最大化。以K-means舉例,Kmeans實現的過程如下:
(1)隨機初始化個聚類中心(cluster centroid)
(2)Cluster Assignment: 對於每個數據點,尋找離它最近的聚類中心,將其歸入該類;
(3)Move Centroid: 更新聚類中心的值爲所有屬於類的數據點的平均值
(4)重複2、3步直到收斂或者達到最大迭代次數
(4)小波分析
小波分析有一些變換的操作降低其他干擾可以看做是降維。
http://www.360doc.com/content/15/0613/14/21899328_477836495.shtml
(5)線性判別(LDA)
線性判別式分析(Linear Discriminant Analysis),簡稱爲LDA,是模式識別的經典算法。基本思想是將高維的模式樣本投影到最佳鑑別矢量空間,以達到抽取分類信息和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。
LDA與PCA都是常用的降維技術。PCA主要是從特徵的協方差角度,去找到比較好的投影方式。LDA更多的是考慮了標註,即希望投影后不同類別之間數據點的距離更大,同一類別的數據點更緊湊。
詳細請參考http://www.cnblogs.com/zhangchaoyang/articles/2644095.html
(6)拉普拉斯特徵映射
拉普拉斯特徵映射將處於流形上的數據,在儘量保留原數據間相似度的情況下,映射到低維下表示。
求解廣義特徵向量,取前幾個非零最小特值對應的特向,即爲原數據在低維下的表示。
資料來源於:http://blog.csdn.net/yujianmin1990/article/details/48420483