機器學習:數據准備和特征工程


對於數據挖掘,數據准備階段主要就是進行特征工程。

 

 數據和特征決定了模型預測的上限,而算法只是逼近了這個上限。

 

好的特征要少而精,這會使模型更簡單、更精准。

 

 

一、特征構造

1.’常見提取方式

文本數據的特征提取

詞袋向量的方式:統計頻率

 

 圖像數據的特征提取

像素點RGB

用戶行為特征提取

 

 

 

特征提取總結:

  • 特征設計時需要與目標高度相關:

    這個特征對預測目標是否有用

    如果有用,這個特征的重要程度如何

    這個特征的信息是否在其他特征重體現過

  • 特征需要專業領域知識、直覺和一定的數學知識
  • 初始提取的特征后續還要進行特征轉換處理,再進入算法模型
  • 特征設計和提取需要不斷反復迭代驗證,是一個非常耗時的工作

 

2.RFM

在客戶關系(CRM)領域,三個刻畫用戶的神奇指標:

  • 最近一次消費間隔時長(Recency)
  • 消費頻率(Frequency)
  • 消費金額(Monetary)

 

RFM分析方法有一種叫五等分法

把RFM切成5個人數等分區間,然后形成RFM的組合立方體

125個格子

 

 R越小越好,FM越大越好

R是越小,等級越大,於是RMF統一為等級越大越好

因此用戶的等級范圍是111-555

 

RFM應用價值:用戶細分

111-555共125個群體,比較多,可以做一些合並

根據不同的RFM值組合情況,可以把用戶分成不同群體,以便制定差異化策略

 

 

RFM應用價值:用戶價值及營銷響應評估

 

 

 

二、特征轉換

1.連續變量無量綱化處理

使不同規格尺度的數據轉換到同一規格尺度

目的:

  • 無量綱化可以讓不屬於同一量綱的特征值可以比較:例如身高(cm),體重(kg)
  • 無量綱化后模型收斂會加快(運行速度較快)
  • 無量綱化對一些模型的結果影響比較大,例如聚類模型,無量綱化后效果會更好 基於距離的一些模型

 

常用無量綱化方法--標准化

效果:把原始的連續變量轉換為均值為0,標准差為1的變量

${x}'=\frac{x-\bar{x}}{\delta }$

 常用無量綱化方法--區間縮放法

效果:把原始的連續變量轉換為范圍在a-b之間的變量,常見的a=0,b=1

${x}'=\frac{x-\min(x)}{\max(x)-\min(x) }$

 

2.連續變量數據變換

數據變換:通過函數變換改變原數據的分布

目的:

  • 變換后更便捷地發現數據之間的關系:從沒有關系變成有關系
  • 很多數據呈現嚴重的偏態分布(很多偏小的值聚集在一起),變換后差異可以拉開
  • 讓數據更符合模型理論所需要的假設,然后對其分析,例如變換后數據呈現正態分布

 

 常用的數據變換方法

  • log變換 x=ln(x)
  • box-cox變換,自動尋找最佳正態分布變換函數的方法

 

 

3.連續變量離散化

把連續型的數值切割為少數的一些區間,例如年齡值切割為5個年齡段

目的:

  • 方便探索數據分布和相關性,例如直方圖,交叉表
  • 離散化后的特征對異常數據有很強的魯棒性:減少異常數據對模型的影響
  • 離散化后可以進行特征交叉組合,由M+N個特征變量變為M*N個特征變量
  • 特征離散化后,模型會更穩定
  • 特征離散化后,簡化了模型復雜度,降低了過擬合風險
  • 一些模型(關聯模型)要求輸入特征是離散的

 

離散化方法:

非監督離散化方法

 

 

有監督的離散化:決策樹

 

 

一種特殊的離散化:二值化

 

 一種特殊的離散化:Rounding(取整)

 

4.類別變量編碼

把類別型變量編碼成數值型的變量

目的:

  • 很多機器學習算法無法處理類別型變量,必須轉換為數值型變量
  • 一定程度上起到了擴充特征的作用(構造了新的特征)

 

one-hot編碼

 

 Counting Encoding

用類別的頻數來編碼,也可以對頻數去量綱化(秩序,歸一化等)

 

 Target Encoding

用目標變量(二分類)中的某一類的比例來編碼

 

 

5.日期型變量處理

 

 

6.缺失值處理

缺失值原因

 

 處理方法

 

 

7.特征組合

目的:通過特征組合構造出更多/更好的特征,提示模型精度

 

 組合讓特征更加精細,反映了原始多個特征之間的交互關系。

 

特征組合的方法

 

 示例

 

 

三、數據降維

在盡量少減少信息量的前提下,采用某種映射方法(函數),把原來的高維(變量多)數據映射為低維數據(變量少)

 

 降維原因:

  • 維數災難:高維情況下容易發生模型的過擬合(泛化能力弱)
  • 特征之間有明顯的自相關的時候,也要考慮降維,因為自相關會讓模型效果變差
  • 降維可以對數據中的有效信息進行綜合提取,並去除一些無用的噪音信息
  • 降維后降低模型復雜度,減少模型訓練時間
  • 降維之后可以對數據進行可視化分析

 

維數災難

 

 維數災難原因

當特征值(空間)個數趨向無限大時,樣本密度非常稀疏,訓練樣本被分錯的可能性趨向於零

 

 降維后發生什么?

線性模型可能精確度會下降,但是也會避免出現過擬合現象

 

 避免維度災難的一個方法是增加樣本量

樣本密度:樣本數/特征值個數;當增加維度時,保持樣本密度不變的方法就是增加樣本量

 

 

常用降維方法

 

 

主成分分析

通過某種線性投影,將高維數據映射到低維空間中表示,並期望在所投影的維度上數據方差最大。使用較少的數據維度,盡量保留住較多的數據信息。

 

 PCA操作流程

 

 

線性判別分析法

 

 PCA與LDA

 

 實驗結果

 

 

總結:

  • 如果研究的問題有目標變量(類別型)

    優先使用LDA來降維

    可以使用PCA做小幅度的降維去噪聲,然后再使用LDA降維

  • 如果研究的問題沒有目標變量

    優先使用PCA來降維

 

四、特征選擇

特征選擇與降維

 

 特征選擇原因:

  • 提高預測准確性
  • 構造更快,消耗更低的預測模型
  • 能夠對模型有更好的理解和解釋

 

特征選擇的方法

 

 

單特征重要性評估

過濾方法

 

蘋果onNet_month與Flag(目標)指標的相關性

 

 

信息值(IV)

 

 變量重要性可視化:趨勢分析

 

 

 

 

更多指標

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM