傳統機器學習的核心就是特徵工程。這個過程包括

一、數據清洗

二、基礎特徵構造

三、衍生變數

四、特徵篩選

五、特徵變化

而我最關注的其實是變數衍生特徵篩選。但是還是會把這五個部分都講到。

今天主要是講前兩個。OK,進入正題。

一、數據清洗

數據清洗又可以概括為:「缺失值處理」,「數據類型轉換」,「去除邏輯錯誤」,「去除業務無關變數」。

1、缺失值處理

處理可以分為填補和刪除。如果在網上百度缺失值填補,會看的很多0填充、均值、眾數和KNN演算法填充之類的。但是,在金融風控場景下,缺失值可能是爬蟲沒有抓取到,也可能是客戶沒有這個數據。前者還好,後者其實本身就是一種有業務意義的欄位。是不應該被填補的。而當一個欄位缺失值超過一半的時候,我一般是刪掉的。這就是刪除處理。

2、數據類型轉換

一般指的是本應該是數值型的卻被存成了字元型,或者日期格式長得比較奇怪的。這裡就不多說了。

3、去除邏輯錯誤

舉個例子:一個借款客戶的年齡為168歲,這顯然是不對的。不說風控規則中一般都會限制年齡,這都違反生活常識了。

4、去除業務無關變數

最常見的一些會被去掉的欄位,就是在一些客戶資質比較差的場景下,用戶手動填寫的數據。如:收入、家庭人數、學歷等等。因為通常這些都是用戶隨便亂寫的,雜訊很大。

二、基礎特徵構造

數據質量和特徵構造其實基本上決定了一個傳統機器學習模型的上限。我們平時常說的數據挖掘,其實就是對更有效特徵的挖掘。在數據源穩定的前提下,這是很多機構提高模型效果的主要方法。而特徵構造分成兩步,一是基礎特徵構造,二是特徵衍生。第一步可以做幾十維特徵或幾百維特徵,第二步則能達到幾萬、幾十萬,甚至幾百萬維特徵。今天主要講第一步,基礎特徵的構造。這也是第二步的基礎,因為第二步就是在第一步上面做變換得到的。

在每一個領域,用到的特徵其實多少都有些不同。不過當模型是針對人來做的時候,比如風控模型、推薦模型、點擊率預估等等,就有很多共通的地方。首先上一節我也提到了,一般都會拿到免費的運營商數據,和安卓可爬的手機內部信息(app名稱,手機設備信息,部分app內容信息),以及收費的徵信數據,外部黑名單之類的。還有一些公司各自私有的內部數據,比如阿里做運費險模型的時候,就可以用到自己的物流數據。這裡不方便說的太過詳細,畢竟涉及很多模型的機密信息。我舉幾個較為顯著,但不是最關鍵的特徵例子。

1、你可以將手機內部app分為五類:娛樂、社交、工具、金融、欺詐。計算一個用戶手機中,每一個類別的app分別有幾個,這樣你就得到了五個特徵。

2、運營商數據中肯定有詳單數據和數據服務商的報告。詳單數據中就可以計算一個用戶每個月打了多少電話、發了多少簡訊、用了多少流量、交了多少話費。

3、徵信報告就非常簡單了。很多都是一個簡單的徵信分數,一般都是分數越高,客戶質量越好。直接取出來就可以了,每個徵信欄位作為一個特徵。

4、從基本信息中獲取用戶畫像,比如身份證中取性別,年齡,戶口所在地,這樣就可以取三個特徵。同時這三個特徵還可以跟他自己手動填寫的性別、年齡、所在地等做交叉驗證,相同為1,不同為0,這樣就又有了三個欄位。

5、如果這個產品對黑名單要求不嚴格的話,還可以將是否在外部黑名單中作為一個特徵,當然更多的公司還是會直接拒絕失信嚴重的申請人的。


推薦閱讀:
相關文章