特徵工程概述


Feature engineering is the process of using domain knowledge of the data to create features that
make machine learning algorithms work.

工業界廣泛流傳這麼一句話:數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已。顧名思義,特徵工程本質是一項工程活動,目的是最大限度地從原始數據中提取特徵以供算法和模型使用。

1.特徵處理

1.1 特徵與標註數據清洗

1.1.1數據採樣

對於二分類問題:選取正例,負例,負類設置爲0, 正類設置爲1.

對於多分類問題:選取多分類,編碼到[0,classnum).

類別不平衡問題:樣本層面可以採用oversampling/undersampling. 算法層面可以採用代價敏感方法/樣本設置權重

1.1.2 樣本過濾

基於統計的異常點檢測算法
例如極差,四分位數間距,均差,標準差等,這種方法適合於挖掘單變量的數值型數據。

基於距離的異常點檢測算法

主要通過距離方法來檢測異常點,將數據集中與大多數點之間距離大於某個閾值的點視爲異常點,主要使用的距離度量方法有絕對距離(曼哈頓距離)、歐氏距離和馬氏距離等方法。

基於密度的異常點檢測算法

考察當前點周圍密度,可以發現局部異常點。

1.2 無量綱化

爲了平衡取值範圍不一致的特徵,需要對特徵進行無量綱化。常用的無量綱化操作有標準化和歸一化。

標準化:標準化需要計算特徵的均值和標準差,然後使用如下公式計算放縮後的特徵值:

x=xX⃗ S

區間縮放法:區間縮放法的思路有多種,常見的一種爲利用兩個最值進行縮放,公式表達爲:
x=xMinMaxMin

1.3離散化與啞編碼

1.3.1 離散化

在上面介紹過連續值的取值空間可能是無窮的,爲了便於表示和在模型中處理,需要對連續值特徵進行離散化處理。常用的離散化方法包括等值劃分和等量劃分。例如某個特徵的取值範圍爲[0,10],我們可以將其劃分爲10段,[0,1),[1,2),,[9,10)

  1. 離散特徵的增加和減少都很容易,易於模型的快速迭代;
  2. 稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;
  3. 離散化後的特徵對異常數據有很強的魯棒性模型也會更穩定;
  4. 離散化後可以進行特徵交叉,由M+N個變量變爲M*N個變量,進一步引入非線性 提 升表達能力;
  5. 特徵離散化以後,起到了簡化了邏輯迴歸模型的作用,降低了模型過擬合的風險

1.3.2 啞編碼

啞編碼主要是採用N位狀態寄存器來對N個狀態進行編碼,每個狀態都由他獨立的寄存器位,並且在任意時候只有一位有效。

例子:

對於國籍特徵假設有三個選項,{中國,美國,加拿大} One-hot encoding 之後,中國變成了[1,0,0],美國變成了[0,1,0],加拿大變成了[0,0,1]

好處:

  1. 使用one-hot編碼,將離散特徵的取值擴展到了歐式空間,離散特徵的某個取值就對 應歐式空間的某個點。
  2. 在迴歸,分類,聚類等機器等學習算法中,特徵之間距離的計算或相似度的計算是 非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算,計算 餘弦相似性,基於的就是歐式空間。
  3. 將離散型特徵使用one-hot編碼,確實會讓特徵之間的距離計算更加合理
  4. 對離散型特徵進行one-hot編碼可以加快計算速度。

1.4 缺失值處理

有些特徵可能因爲無法採樣或者沒有觀測值而缺失.例如距離特徵,用戶可能禁止獲取地理位置或者獲取地理位置失敗,此時需要對這些特徵做特殊的處理,賦予一個缺省值。缺省值如何賦予,也有很多種方法。例如單獨表示,衆數,平均值等。

1.5 特徵生成以及特徵學習

特徵生成

根據已有特徵生成新特徵,增加特徵的非線性。常見的數據變換有基於多項式的、基於指數函數的、基於對數函數的。

例如4個特徵,度爲2的多項式轉換公式如下:

特徵學習

特徵學習可以分爲監督特徵學習和無監督特徵學習:

監督特徵學習包括監督神經網絡、多層感知機;

無監督特徵學習包括無監督PCA、LDA、AutoEncoder、MF和各種形式的聚類算法。


2.特徵選擇

2.1 概述

在機器學習或者統計學中,又稱爲變量選擇、屬性選擇或者變量子集選擇,是在模型構建中,選擇相關特徵並構成特徵子集的過程。

目的

  • 簡化模型,增加模型的可解釋性
  • 縮短訓練時間
  • 避免維度災難
  • 改善模型通用性、降低過擬合

2.2一般過程

[1]Dash, Manoranjan, and Huan Liu. “Feature selection forclassification.” Intelligent data analysis 1.1-4 (1997): 131-156.

[2]Tang, Jiliang, Salem Alelyani, and Huan Liu. “Feature selection forclassification: A review.” Data Classification: Algorithms andApplications (2014): 37.

2.3搜索方法

Screen Shot 2017-12-07 at 9.39.37 AM

2.4評價標準


Filter:

  • 執行時間短(+):一般不會在數據集上進行迭代計算,且是分類器無關的,相比於訓練分類器要快。
  • 一般性(+):評價數據中屬性的本身的性質,而不是屬性與特定分類器的關聯關係(適合程度),所以得到的結果更具有一般性,而且對於很多分類器都能表現“良好”。
  • 選擇大規模子集(-):傾向於選擇全部最優的特徵子集,導致決定停止的條件決定權交給了用戶,具有較強的主觀性

Wrapper:

  • 準確性(+):由於特徵子集是針對特定的分類器調準,能獲得較好的識別率。
  • 泛化能力(+):有很多機制可以防止過擬合,例如在分類器中可以使用交叉驗證等技術。
  • 執行速度(-):對於每個候選的特徵子集,必須重新訓練一個分類器甚至多個分類器(交叉驗證),所以對於計算密集型非常不適合。
  • 一般性(-):由於此種方法對分類器敏感,而不同的分類器具有不同原理的評價函數(損失函數),只能說最終選擇特徵子集是對當前分類器“最好”的。

2.4.1 過濾法


2.4.2 封裝法

  1. 基於目標函數
  2. 完全搜索[窮舉]
  3. 啓發式搜索[貪心]
  4. 隨機搜索[策略+好運氣]

2.4.3 嵌入法

在模型既定的條件下,尋找最優特徵子集

  1. 正則化項( L1、L2 )
  2. LASSO迴歸
  3. 嶺迴歸(RidgeRegression)
  4. 決策樹
  5. ID3、C4.5、CART
  6. 深度學習

3.特徵降維

3.1 概述

目的:最大限度地降低數據的維度的前提下能夠同時保證保留目標的重要的信息

3.2 主成分分析/PCA



3.3 線性判別分析/LDA





3.4局部線性嵌入/LLE





3.5拉普拉斯特徵映射/LE




3.6 隨機鄰域嵌入/SNE


3.7 t-分佈鄰域嵌入/T-SNE



參考文獻:徐坤,彙報

發佈了131 篇原創文章 · 獲贊 261 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章