爲什麼需要降維
- 數據的維度過高,需要存儲數據的空間非常大,降維可以降低數據存儲所需的空間;
- 數據的維數過高,某些算法的時間複雜度很高,降維到較小的維數可以緩解計算/訓練時間,而且有些算法因爲數據的維度過高,不能執行,需要降維處理使算法work;
- 數據中通常可能存在一些冗餘特徵,降維可以消除這些冗餘特徵。因爲數據中的某些特徵本身就互相關聯,只需要知道它們中的一種特徵即可。因此,全部存儲沒有意義,反而消耗存儲空間,因爲它們中只需要一個就能符合你的要求;
- 降維有助於可視化數據。很難以更高的維度可視化數據,因此將空間縮小到2D或3D可以讓我們更清楚地繪製和觀察模式。
降維是什麼
若原特徵空間是維的,現希望降至維
降維和特徵選擇
- 只保留最相關的變量從原始數據集,這種技術被稱爲特徵選擇;
- 通過找到一組較小的新變量,每個變量都是輸入變量的組合,包含與輸入變量基本相同的信息,這種技術稱爲降維。
從字面意義上看,降維和特徵選擇都可以看作降維。
分類
降維方法分爲線性和非線性降維,非線性降維又分爲基於核函數和基於特徵值的方法。
1、線性降維方法:
PCA 、ICA LDA、LFA、LPP(LE的線性表示)
2、非線性降維方法:
(1)基於核函數的非線性降維方法:KPCA 、KICA、KDA
(2)基於特徵值的非線性降維方法(流型學習):ISOMAP、LLE、LE、LPP、LTSA、MVU
具體的降維方法以及代碼實現網上有很多,請看推薦閱讀部分!
推薦閱讀
降維方法 -簡直太全!- 附Python代碼(Random Forest、Factor Analysis、corr、PCA、ICA、IOSMA