數據挖掘中常見的特徵工程方法

定義

這幾天在做一個數據挖掘相關的東西,煉丹練久了,突然發現對特徵工程這一塊還存在比較大的空白。於是查閱了一些資料,權當記錄閱讀筆記。

特徵工程在數據挖掘應用中直接影響模型最終的性能;尤其在很多計算機視覺任務中,特徵提取的重要性甚至超過了分類器本身(比如CNN提取的feature是比很多hand-crafted features更具備表示能力的)。良好的特徵(feature)應該與標籤(label)高度相關,並且與其他特徵不相關。

特徵工程(feature engineering)包括特徵提取特徵選擇兩個方面。

特徵提取廣義上指的是一種變換, 將處於高維空間的樣本通過映射或變換的方式轉換到低維空間, 達到降維的目的;

特徵選擇指從一組特徵中去除冗餘或不相關的特徵來降維。

這裡暫時只介紹特徵選擇部分!如有錯誤,歡迎指正!


主要思路

特徵獲取需要解決兩個問題,

一是確定選擇演算法,在允許的時間內,以可以忍受的代價找出最小的、最能描述類別的特徵組合;

二是確定評價標準, 衡量特徵組合是否最優,得到特徵獲取操作的停止條件。 因此, 一般分兩步進行特徵獲取,先產生特徵子集,然後對子集進行評價,如果滿足停止條件,則操作完畢,否則重複前述兩步直到條件滿足為止。

按照特徵評價標準分類:

  • 選擇使分類器的錯誤概率最小的特徵或者特徵組合。
  • 利用距離來度量樣本之間相似度。
  • 利用具有最小不確定性(Shannon熵、Renyi熵和條件熵)的那些特徵來分類。
  • 利用相關係數, 找出特徵和類之間存在的相互關係;

    利用特徵之間的依賴關係, 來表示特徵的冗餘性加以去除。

Search

  • forward selection:以空集開始,逐漸向裡面添加特徵,直到滿足stopping criterion(常用於高維數據挖掘場景)。
  • backward elimination:包含所有特徵並逐漸刪除,直到滿足stopping criterion。
  • forward selection + backward elimination

Evaluation

  • Filters:不依賴於學習演算法,對獨立特徵或特徵子空間進行評估;
    • Mutual Information(MI):度量每個特徵與標籤的MI值,選取其中Top N個的特徵。
      • I(A,B)=sum_{i}{sum_{j}{Pr(a_i, b_j)logfrac{Pr(a_i, b_j)}{Pr(a_i)*Pr( b_j)}}}
    • Chi-Square:被用於測試兩個相互獨立的事件A,B的偏差程度。
      • chi^2(t,c)=frac{N	imes(AD-CB)^2}{(A+C)(B+D)(A+B)+(C+D)}
      • 式中,N 表示訓練語料中的文檔總數;c 為某一特定類別; t 表示特定的詞條; A 表示屬於 c 類且包含 t 的文檔頻數; B 表示不屬於 c 類但是包含 t 的文檔頻數;C 表示屬於 c 類但是不包含 t 的文檔頻數; D 是既不於 c 也不包含 t 的文檔頻數。
      • 若chi-square足夠小,就認為兩者是獨立的;若chi-square大到一定程度,就認為兩者是相關的。
    • Pearson Correlation Coefficients
    • Euclidean Distance
    • T-Test:評估兩組樣本均數之間的差異程度。
      • T=frac{ar{X}-ar{Y}}{sqrt{frac{S_1^2}{n_1}+frac{S_s^2}{n_2}}}
    • Laplacian Score(LS):LS通常用於unsupervised learning如聚類中,它假定相互關聯的特徵在整個特徵空間中,其臨近記錄與該特徵向量也很接近。

      在Label存在的supervised learning任務,可使用Fisher Criterion Score (FCS)。

    • Information Gain:考察某特徵 t 出現與不出現的時候兩者差值,即為該特徵給系統帶來的信息量;差值越大,說明該特徵越重要。
      • IG(t)=-sum_{i=1}^m{P(c_i)log{P(c_i)}}+P(t)sum_{i=1}^m{P(c_i|t)log{P(c_i|t)}}+P(ar{t})sum_{i=1}^m{P(c_i|ar{t})log{P(c_i|ar{t})}}
      • P(c_i) 表示 c_i 類文檔在語料中出現的概率; P(t) 表示語料中包含詞條 t 的文檔的概率; P(c_i|t) 表示文檔包含詞條 t 時屬於 c_i 類的條件概率; P(ar{t}) 表示語料中不包含詞條 t 的文檔的概率; P(c_i|ar{t}) 表示文檔不包含詞條 t 時屬於 c_i 的條件概率; m 表示類別數。
  • Wrappers:利用學習演算法來評估特徵子空間,如Classifier的準確率。優點是Wrappers通常比Filters更準確;缺點是計算量較大。
  • Embedded: 特徵選擇演算法是作為學習演算法的部分嵌入其中的,特徵選擇和訓練過程同時進行。常見的有Decision Tree和 Deep Neural Networks。

Reference

[1]王娟,慈林林,姚康澤.特徵選擇方法綜述[J].計算機工程與科學,2005(12):72-75.

[2]Amr T. Survey on Feature Selection[J]. Computer Science, 2013.

[3]李敏,卡米力·木依丁.特徵選擇方法與演算法的研究[J].計算機技術與發展,2013,23(12):16-21.

推薦閱讀:

了解一點模型部署與上線
Community Preserving Network Embedding閱讀報告
Kaggle Titanic 生存預測(Top1.4%)完整代碼分享
手把手教你快速構建自定義分類器
視角觀察:四個話題讀懂大數據醫療

TAG:數據挖掘 | 機器學習 | 特徵工程 |