在業界廣泛流傳着一句話:數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。
由此可見,數據和特征是多么的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了...
0. 特征工程
- 特征構建:從原始數據中構建出特征,有時也稱作特征預處理,包括缺失值處理、異常值處理、無量綱化(標准化/歸一化)、啞編碼等。
- 特征提取:將原特征轉換為一組具有明顯物理意義或統計意義或核的新特征。
- 特征選擇:從特征集合中挑選一組最具統計意義的特征子集。
1. 特征降維
1.1 特征選擇(子集篩選):
特征選擇方法主要分為三種:
- Filter:過濾式;按權重排序,不涉及到學習器,排序規則一般有方差法、相關系數法、互信息法、卡方檢驗法、缺失值比例法(注意受范圍影響的方法需先歸一化)[2.zhihu]。
- 方差法:計算各個特征的方差,然后根據閾值,選擇方差大於閾值的特征。可使用sklearn.feature_selection庫的VarianceThreshold類來實現。
- 缺失值比例法:計算各個特征的缺失值比例,將缺失值比例較大的特征過濾掉。
- 相關系數法:計算特征與輸出值的相關系數以及相關系數的 P值(常見的有:皮爾森相關系數用於數值特征的線性檢驗,秩相關系數用於類別特征的單調性檢驗)。
- 互信息法:計算定性特征與輸出值的相關性(運用了信息熵理論),決策樹學習中的信息增益等價於訓練數據集中類與特征的互信息。
-
- 卡方檢驗法:對於每個特征與輸出值,先假設獨立,再觀察實際值與理論值的偏差來確定假設的正確性,即是否相關。
- Embedded:嵌入式;確定模型過程中自動完成重要特征挑選,基於懲罰項如嶺回歸(L2正則)、LASSO(L1正則),基於樹模型如GBDT、決策樹[3.cnblog]。
- Wrapper:封裝式;用學習器的性能評判不同特征子集的效果,特征子集生成方式:完全搜索(前向&后向)、啟發式搜索、隨機搜索[3.cnblog]。
1.2 特征提取(投影or轉換):
- 線性方法[4.csdn]:
- PCA:主成分分析;理論:通過正交變換將原始的 n 維數據集變換到一個新的被稱做主成分的數據集中,變換后的結果中第一個主成分具有最大的方差值;
- 特點:無監督,盡量少維度保留盡量多原始信息(均方誤差最小),期望投影維度上方差最大,不考慮類別,去相關性,零均值化,喪失可解釋性
- ICA:獨立成分分析;將原特征轉化為相互獨立的分量的線性組合;PCA一般作為ICA的預處理步驟[5.zhihu]。
- LDA:線性判別分析,有監督,盡可能容易被區分(高內聚、低耦合)[6.cnblog]。
- SVD:奇異值分解,可用於PCA、推薦、潛在語義索引LSI,可並行,可解釋性不強
- 非線性方法:
- LLE:局部線性嵌入,非線性降維(基於圖),保持原有流行結構
- LE:拉普拉斯特征映射,非線性(基於圖),相互有聯系的點盡可能靠近
- t-SNE:t分布隨機臨近嵌入,將歐幾里得距離轉為條件概率表達點與點之間的相似度[7.datakit]。
- AE:自動編碼器
- 聚類
特征降維方法對比先介紹到這里,更多內容后續繼續分解~
轉載請注明出處:數據挖掘篇——特征工程之特征降維(https://www.cnblogs.com/webary/p/12498886.html)
參考鏈接:
1.wiki:https://en.wikipedia.org/wiki/Feature_engineering
2.zhihu:https://www.zhihu.com/question/28641663
3.cnblog:https://www.cnblogs.com/pinard/p/9032759.html
4.csdn:https://blog.csdn.net/yujianmin1990/article/details/48223001
5.zhihu:https://www.zhihu.com/search?type=content&q=PCA%20ICA
6.cnblog:https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
7.datakit:http://www.datakit.cn/blog/2017/02/05/t_sne_full.html