1. 程式人生 > >大資料:特徵工程

大資料:特徵工程

1、單變數特徵篩選

計算每一個特徵與響應變數的相關性:工程上常用的手段有計算皮爾遜係數和互資訊係數,皮爾遜係數只能衡量線性相關性而互資訊係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裡邊都包含了這個工具(如sklearn的MINE),得到相關性之後就可以排序選擇特徵了;

2、單特徵模型篩選

構建單個特徵的模型,通過模型的準確性為特徵排序,藉此來選擇特徵,另外,記得JMLR’03上有一篇論文介紹了一種基於決策樹的特徵選擇方法,本質上是等價的。當選擇到了目標特徵之後,再用來訓練最終的模型;

3、L1,L2正則篩選

通過L1正則項來選擇特徵:L1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,L1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了一個,如果要確定哪個特徵重要應再通過L2正則方法交叉檢驗;

4、基於模型係數篩選

訓練能夠對特徵打分的預選模型:RandomForest和Logistic Regression等都能對模型的特徵打分,通過打分獲得相關性後再訓練最終模型;我在上篇實戰中用到了xgboost,根據權重篩選特徵;

5、特徵組合

通過特徵組合後再來選擇特徵:如對使用者id和使用者特徵最組合來獲得較大的特徵集再來選擇特徵,這種做法在推薦系統和廣告系統中比較常見,這也是所謂億級甚至十億級特徵的主要來源,原因是使用者資料比較稀疏,組合特徵能夠同時兼顧全域性模型和個性化模型;

6、基於深度學習

通過深度學習來進行特徵選擇:目前這種手段正在隨著深度學習的流行而成為一種手段,尤其是在計算機視覺領域,原因是深度學習具有自動學習特徵的能力,這也是深度學習又叫unsupervised feature learning的原因。從深度學習模型中選擇某一神經層的特徵後就可以用來進行最終目標模型的訓練了;