Task3:特徵工程——二手車交易價格預測

一、特徵工程的常用方法

  1. 特徵工程的目的:通過上一步的特徵分析,去構建有效的特徵來擬合隱藏的規律。

  2. 常用方法:
    A. 異常處理:
    a) 通過箱線圖(或 3-Sigma)分析刪除異常值;
    b) BOX-COX 轉換(處理有偏分佈);
    c) 長尾截斷;

    B. 特徵歸一化/標準化:
    a) 標準化(轉換爲標準正態分佈);
    b) 歸一化(抓換到 [0,1] 區間);
    c) 針對冪律分佈,可以採用公式: 𝑙𝑜𝑔(1+𝑥1+𝑚𝑒𝑑𝑖𝑎𝑛)

    C. 數據分桶
    a) 等頻分桶;
    b) 等距分桶;
    c) Best-KS 分桶(類似利用基尼指數進行二分類);
    d) 卡方分桶;

    D. 缺失值處理:
    a) 不處理(針對類似 XGBoost 等樹模型);
    b) 刪除(缺失數據太多);
    c) 插值補全,包括均值/中位數/衆數/建模預測/多重插補/壓縮感知補全/矩陣補全等;
    d) 分箱,缺失值一個箱;

    E. 特徵構造:
    a) 構造統計量特徵,報告計數、求和、比例、標準差等;
    b) 時間特徵,包括相對時間和絕對時間,節假日,雙休日等;
    c) 地理信息,包括分箱,分佈編碼等方法;
    d) 非線性變換,包括 log/ 平方/ 根號等;
    e) 特徵組合,特徵交叉;
    f) 仁者見仁,智者見智。

    F. 特徵篩選
    a) 過濾式(filter):先對數據進行特徵選擇,然後在訓練學習器,常見的方法有 Relief/方差選擇發/相關係數法/卡方檢驗法/互信息法;
    b) 包裹式(wrapper):直接把最終將要使用的學習器的性能作爲特徵子集的評價準則,常見方法有 LVM(Las Vegas Wrapper) ;
    c) 嵌入式(embedding):結合過濾式和包裹式,學習器訓練過程中自動進行了特徵選擇,常見的有 lasso 迴歸;

    G. 降維
    a) PCA/ LDA/ ICA;
    b) 特徵選擇也是一種降維。

二. 該題中的特徵工程

1. 處理異常值:通過箱型圖處理異常值.
異常值處理了兩個:power和訓練集的price。 處理完後,雖然訓練數據很好看,達到了360左右,但是測試糟糕,提交後4000+。 迴歸問題最怕異常值,說明測試集中也存在異常值,因此訓練集感覺不能處理異常值。

2. 構造使用時間的特徵: 用regDate-creatDate.

3. 構造郵編特徵: 原先的regionCode太稀疏了,捨棄該特徵,構造城市特徵。 因爲該特徵做過脫敏處理,因此取前兩位。

4. 構造品牌統計量信息: 計算某品牌的銷售統計量,還可以計算其他特徵的統計量.
嘗試構造過交易名稱name,model等統計量,似乎容易過擬合.
這裏要以 train 的數據計算統計量.

5. 處理object特徵-notRepairedDamage
a) 處理特徵中的“-”
b) 變爲數字特徵

6. 'seller’和’offerType’特徵處理
'seller’和’offerType’基本只存在相同的一類特徵,對迴歸沒有幫助,可以刪除

7. 根據皮爾係數相關性矩陣,去掉一些強相關的匿名特徵

8. log處理power特徵
之前數據分析中,power的偏度和峯度都比較大,因此做一下log處理比較好。

9. 最後保存數據,方便訓練模型的時候調用

**注:**歸一化基本沒有做,是因爲使用xgboost和lightgbm模型對數據大小不敏感,使用線性等模型需要作歸一化。

代碼傳送門

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