在工業應用中,feature 比演算法重要,資料比 feature 重要,有很多 kaggle 參賽者分享經驗時也是說 feature engineering 很重要,今天來寫一寫特徵工程相關的。
本文結構
feature engineering 是什麼
有什麼用
怎麼用實際應用
參考先用例子來直觀地了解一下
例如要分析聲音,直接拿來資料,是什麼都學不到的,需要進行 fourier 變換
例如分析,判斷這個是不是蘋果,可以選擇 形狀,顏色分布,邊 來作為feature
特徵工程就是選擇一些表示典型特徵的資料,來替代原始資料作為模型的輸入,進而得到比較好的輸出效果。
特徵越好,模型的效能越好,而且可以不用很複雜的數學模型也能達到不錯的效果參考
特徵工程是個過程,包括三個子模組:特徵構建->特徵提取->特徵選擇
特徵構建:根據原始資料構建新的特徵,需要找出一些具有物理意義的特徵。
特徵提取:自動地構建新的特徵,將原始特徵轉換為一組具有明顯物理意義或者統計意義或核的特徵。例如 gabor、幾何特徵、紋理等。
常用的方法有:
特徵選擇:從特徵集合中挑選一組最具統計意義的特徵子集,把無關的特徵刪掉,從而達到降維的效果
常用的方法:
embeded(整合方法):regularization,或者使用決策樹思想,random forest和gradient boosting等
這篇文章《使用sklearn做特徵工程》, 使用sklearn中的iris(鳶尾花)資料集來對特徵處理的過程進行了說明,包括包的使用,資料預處理,還有上面提到的一些特徵選擇方法的 python **和應用例子:
特徵選擇部分:
embedded:基於l1,l2懲罰項的特徵選擇法,基於樹模型gbdt的特徵選擇法
特徵提取部分:
降維:主成分分析法(pca),線性判別分析法(lda)
對於上面提到的方法,還需要學習一下各自的含義原理和應用場景。
這是 cs 294: practical machine learning的乙個課件,講了 feature engineer 主要方法的原理和應用結果
此外,scikit learn 有關於 feature extraction 的講解和**例子,可以學習學習
下面是quora上對『what are some best practices in feature engineering?』這個問題的乙個回答,講了一些實際的經驗,應用時可以作為一點啟發:
理解資料
特徵是連續的還是離散
特徵資料的分布如何
分布依賴的因素
是否有資料缺失,重複,交叉
特徵的**
資料是實時的嗎
頭腦風暴更多的特徵
好的特徵具有下面特點
能夠直觀地解釋
可以被計算
檢驗你的猜測
建模完成後要檢驗,資料分割,交叉檢驗等。
圍繞你的目標思考
無論是做回歸,分類,還是聚類問題,你的猜想和建模都是為了解決這個問題服務的。
堅持 rfmvt 原則
不要過於工程化
快速迭代,最有效的方式就是提出正確的問題。
推薦閱讀
歷史技術博文鏈結彙總
也許可以找到你想要的
怎麼做產品
和使用者交流是為了做出更好的 產品 打造更好的體驗,但真正好的產品出現之前,使用者也不知道他們想要什麼 比如,在汽車沒出現的馬車時代,使用者會說 我需要一匹更快的馬 那些情緒激動 很生氣的使用者常常能變為最忠實的使用者,只要你能夠打動他們。所以,情緒裡有絕對的價值,如果你能在這些使用者生氣的時候,好...
直播怎麼做?
1 手機 那麼手機直播需要哪些裝置呢,首先是一部畫素高的手機,這個就不具體說明了。其次是光源,也就是補光燈,布光是一門專業的學科,有興趣的同學可以找點資料深入了解一下。一般在環境光充足的情況下可以直接選擇那種燈 支架一體的,可自行某寶。3 攝像頭 我們平時所看的才藝主播,帶貨主播,遊戲主播,絕大部分...
seo優化方案怎麼做?seo怎麼做優化?
但要害詞在優化之前應該先進行選擇,這一項作業意義嚴峻。一些短要害詞雖然上手,但越是上手的要害詞流量就越為大公司所把控。中小型企業在優化這些要害詞時會好不容易且難以收到成效。所以關於新 或是一些中小型的企業來說,選擇一些較為簡略優化的要害詞就顯得尤為要害。要害詞優化的難易度可以通過查詢要害詞查詢熱度來...