對於數據挖掘,數據准備階段主要就是進行特征工程。
數據和特征決定了模型預測的上限,而算法只是逼近了這個上限。
好的特征要少而精,這會使模型更簡單、更精准。
一、特征構造
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)
變量重要性可視化:趨勢分析
更多指標