最近學習特徵工程(Feature Enginnering)的相關技術,主要包含兩塊:特徵選取(Feature Selection)和特徵抓取(Feature Extraction)。這裏記錄一些要點,做爲備忘。
特徵選取
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
分類器包裝:經過包裝特定的分類/迴歸算法,並使用一些通用的優化算法,選取具備最有效果的屬性組合。
屬性過濾器可能效率更高,可是效果不直接。而分類包裝器可能效果更直接,可是計算開銷大。
特徵抓取
主要是重已有的數據中,建立新的數據。
- 領域知識:這點最好與領域專家一塊兒討論
- 統計量:無需領域知識,通用的統計量,如均值,中位數,分位數,最大最小值,偏度,峯度等
- 數據可視化:經過閃點圖,分佈度等方法,找到特殊的特殊性,建立feature。可視化以前須要預處理數據,如傅里葉變化,PCA,查看原始數據等。
參考