1. 程式人生 > >機器學習系列之特徵工程

機器學習系列之特徵工程

資料的特徵選擇

資料特徵主要分為兩部分,一部分是業務已經整理好的各種特徵資料;另一部分是根據業務特徵去構造的資料特徵。

特徵選擇的方法

一、已有特徵

1.過濾法選擇特徵:

方差越小,不同樣本的特徵值越相似,此特徵作用越小;

各個特徵與輸出值間的相關係數,選擇相關係數較大的部分特徵;

假設檢驗,如卡方檢驗、F檢驗、t檢驗;

互資訊,資訊增益。

2.包裝法選擇特徵

最常用的包裝法是遞迴消除特徵法(recursive feature elimination,以下簡稱RFE)。遞迴消除特徵法使用一個機器學習模型來進行多輪訓練,每輪訓練後,消除若干權值係數的對應的特徵,再基於新的特徵集進行下一輪訓練。在sklearn中,可以使用RFE函式來選擇特徵。

3.嵌入法選擇特徵

嵌入法也是用機器學習的方法來選擇特徵,但是它和RFE的區別是它不是通過不停的篩掉特徵來進行訓練,而是使用的都是特徵全集。在sklearn中,使用SelectFromModel函式來選擇特徵。

最常用的是使用L1正則化和L2正則化來選擇特徵。在之前講到的用scikit-learn和pandas學習Ridge迴歸第6節中,我們講到正則化懲罰項越大,那麼模型的係數就會越小。當正則化懲罰項大到一定的程度的時候,部分特徵係數會變成0,當正則化懲罰項繼續增大到一定程度時,所有的特徵係數都會趨於0. 但是我們會發現一部分特徵係數會更容易先變成0,這部分系數就是可以篩掉的。也就是說,我們選擇特徵係數較大的特徵。常用的L1正則化和L2正則化來選擇特徵的基學習器是邏輯迴歸。

此外也可以使用決策樹或者GBDT。那麼是不是所有的機器學習方法都可以作為嵌入法的基學習器呢?也不是,一般來說,可以得到特徵係數coef或者可以得到特徵重要度(feature importances)的演算法才可以做為嵌入法的基學習器。

二、高階特徵

尋找高階特徵最常用的方法有:

    若干項特徵加和: 我們假設你希望根據每日銷售額得到一週銷售額的特徵。你可以將最近的7天的銷售額相加得到。
    若干項特徵之差: 假設你已經擁有每週銷售額以及每月銷售額兩項特徵,可以求一週前一月內的銷售額。
    若干項特徵乘積: 假設你有商品價格和商品銷量的特徵,那麼就可以得到銷售額的特徵。
    若干項特徵除商: 假設你有每個使用者的銷售額和購買的商品件數,那麼就是得到該使用者平均每件商品的銷售額。

參考自:

https://www.cnblogs.com/pinard/p/9032759.html

https://segmentfault.com/a/1190000003719712