特徵工程是什麼

More data beats clever algorithms, but better data beats more data.

1. 什麼是特徵工程

特徵工程算是一個如何展示和表現數據的問題,在實際工作中需要把數據以一種良好的方式展現出來,使得能夠使用各種各樣的機器學習模型來得到更好的效果。如何從原始數據中去除不佳的數據,展示合適的數據就成爲了特徵工程的關鍵問題。

2. 特徵有用性的預估

一個特徵是否重要主要在於該特徵與要預測的東西是否是高度相關的,如果是高度相關,那麼該特徵就是十分重要的。

3. 特徵的構造過程

確定問題-數據整合-數據預處理-特徵的構造

數據預處理

通過特徵提取可以得到未經處理的特徵,此時特徵可能有以下問題:

  • 不屬於同一量綱:即特徵的規格不一樣,不能夠放在一起比較。
  • 信息冗餘:對於某些定量特徵,其包含的有效信息爲區間劃分,可用離散化處理。
  • 定性特徵不能直接使用:某些ML算法和model只能接收定量特徵的輸入,那麼需要將定性特徵轉換爲定量特徵。使用one-hot編碼。
  • 存在缺失值:缺失值需要補充
  • 信息利用率低:不同的算法和模型對數據中信息的利用是不同的,在線性模型中,使用定性特徵啞編碼可以達到非線性的效果。類似地,對定量變量多項式化等轉換都可達到非線性的效果。
(1)標準化:將數據按比例縮放,使之落入一個小的特定區間,去除單位的限制,將其轉化爲無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。
(2)歸一化:歸一化是因爲特徵會在不同的尺度下有不同的表現形式,歸一化會使得各個特徵能夠以恰當的方式表現。
(3)離散化:離散化是指把特徵進行必要的離散處理。把無限空間中有限的個體映射到有限的空間中去,以此提高算法的時空效率。
特徵選擇

當數據預處理完成後,需要選擇有意義的特徵輸入到機器學習算法和模型上進行訓練。通常從兩個方面考慮來選擇特徵:

  • 特徵是否發散:如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本沒差異,這個特徵對於樣本的區分並沒有什麼用。
  • 特徵與目標的相關性:這點比較明顯,與目標相關性高的特徵,應當優先選擇。除方差外,本文介紹的其他方法均從相關性考慮。

根據特徵選擇的形式又可將特徵選擇方法分爲3種:

  • Filter:過濾法,按照發散性或相關性對各個特徵進行評分,設定閾值或者待選擇閾值的個數,選擇特徵。
  • Wrapper:包裝法,根據目標函數,每次選擇若干特徵,或者排除若干特徵。
  • Embedded:集成法,先使用某些Machine Learning的算法和Model進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似與Filter方法,但是是通過訓練來確定特徵的優劣。

Filter

  • 方差選擇法
  • 相關係數法
  • 卡方檢驗
  • 互信息法

Wrapper

  • 遞歸特徵消除法

Embedded

  • 基於懲罰項的特徵選擇法
  • 基於樹模型的特徵選擇法

降維

  • 主成分分析(PCA)
  • 線性判別分析法(LDA)

通過以下回答整理:
https://www.zhihu.com/question/29316149/answer/110159647
https://www.zhihu.com/question/29316149/answer/82949813

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章