在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。 由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了... ...
在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。
由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了...
0. 特征工程
首先介紹下,特征工程是什麼:利用數據領域的相關知識來創建能夠使機器學習演算法達到最佳性能的特征的過程[1.wiki]。特征工程是一個較大領域,它通常包括特征構建、特征提取和特征選擇這三個子模塊,重要性排序:特征構建>特征提取>特征選擇。先來介紹幾個術語:
- 特征構建:從原始數據中構建出特征,有時也稱作特征預處理,包括缺失值處理、異常值處理、無量綱化(標準化/歸一化)、啞編碼等。
- 特征提取:將原特征轉換為一組具有明顯物理意義或統計意義或核的新特征。
- 特征選擇:從特征集合中挑選一組最具統計意義的特征子集。
1. 特征降維
WHAT:將高維空間的特征通過刪減或變換轉為低維空間特征 WHY:降低時間/空間複雜度、降低提取特征開銷、降噪、提升魯棒性、增強可解釋性、便於可視化; HOW:主要有兩種方式,即特征選擇和特征提取。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