最近學習特征工程(Feature Enginnering)的相關技術,主要包含兩塊:特征選取(Feature Selection)和特征抓取(Feature Extraction)。這里記錄一些要點,作為備忘。
特征選取
Algorithms for wrapping classifiers and search attribute subset space: best.first.search, backward.search, forward.search, hill.climbing.search
R中的FSelector包實現了一些特征選取的算法,主要分兩大類:
Algorithms for filtering attributes: cfs, chi.squared, information.gain, gain.ratio, symmetrical.uncertainty, linear.correlation, rank.correlation, oneR, relief, consistency, random.forest.importance
屬性過濾器:直接通過一些統計指標,計算變量與y的關系,然后根據一定規則選取理想的值。
Algorithms for wrapping classifiers and search attribute subset space: best.first.search, backward.search, forward.search, hill.climbing.search
分類器包裝:通過包裝特定的分類/回歸算法,並使用一些通用的優化算法,選取具有最有效果的屬性組合。
屬性過濾器可能效率更高,但是效果不直接。而分類包裝器可能效果更直接,但是計算開銷大。
特征抓取
主要是重已有的數據中,創建新的數據。
Design Userful Features這篇文章,通過軸承的例子,從三個方面描述了特征抓取的方法,
- 領域知識:這點最好與領域專家一起討論
- 統計量:無需領域知識,通用的統計量,如均值,中位數,分位數,最大最小值,偏度,峰度等
- 數據可視化:通過閃點圖,分布度等方法,找到特殊的特殊性,創建feature。可視化之前需要預處理數據,如傅里葉變化,PCA,查看原始數據等。
參考
- R FSelector包說明文檔
- R caret包,參考文章 Feature Selection
- 論文 An Introduction to Variable and Feature Selection, by Andre Elisseeff
- 使用快速傅里葉變化進行feature提取的例子
- 知乎:傅里葉變換掐死教材