1. 程式人生 > >【金融申請評分卡】資料準備

【金融申請評分卡】資料準備

今天我們來聊聊資料準備中的資料清洗。

其實資料清洗這四個字對於常常做資料分析建模的同學們一定不陌生,不管在實際工作中有沒有真正做清洗,我們都會先把這個口號喊出來,資料清洗這塊其實我也一直不太願意拿出來說,因為這種活實在太結合業務理解了,而且還見仁見智,並不是簡簡單單的三步——缺失值填補、異常值刪除、錯誤值處理。但是做資料建模呢,也不能跳過這步,那我就從操作手法和操作目的兩個方面來聊聊我認為怎麼做資料清洗。

缺失值

資料缺失引起的原因多種多樣,大致可以概括為IT系統原因、前端錄入原因和接入徵信公司原因。

對於IT系統缺陷導致的資料缺失,在你無能為力的時候請儘快聯絡IT人員。

對於前端錄入資料的缺失,通過邏輯匹配方式可以選擇不同手段去填補。

對於接入徵信公司原因導致某些第三方資料欄位有缺失,那我們要理解這個缺失值的內在含義,有些情況的缺失我們是不能去填補的,就作為missing存在。

在做缺失值填補前,同學們應該先看看有哪些欄位是缺失的,缺失比例如何,是否對我們業務和模型有作用。如果這些缺失欄位是不必要的,那我們沒有必要花功夫去填補它們。

具體操作手法:

1.1 篩選出缺失的資料

google或者baidu上能找到很多關於查詢缺失值的小程式碼,大部分篩選邏輯按照資料型別做分類篩選,運用陣列和do迴圈,具體程式碼我就不展示在文章裡了。黑貓白貓能抓住老鼠的就是好貓。

1.2 檢視缺失比例,判斷是否必要

對篩選出缺失資料欄位的missing資料集,通過觀察缺失比例和建模產品的逾期率去判斷是否有必要做缺失值填補。

比如,建模產品的逾期率比較高,也就是建模樣本里的壞樣本比較多,變數分箱的目的是更希望將壞樣本分到一個組裡,這個時候一個分箱變數的缺失率很高,不論是做特徵值替換、線性插值、邏輯匹配填補或者作為MISSING處理,都容易造成分箱組裡sample的極端分佈不均,這個時候如果你做並組,會造成分箱區分度下降,如果你不做並組,這個分箱變數會有不穩定的潛在隱患。

所以,對於逾期率高的產品建模,缺失比例高的話就不建議進入模型,同比,對於逾期率低的建模產品,缺失率的容忍度就好了很多,具體這個balance的線在哪裡,我只能給個我的感覺範圍:

如果逾期率大約40%以上,可接受的缺失比例在15%以下;

如果逾期率大約8%以下,可接受的缺失比例在70%以下;

更嚴謹的做法是每次建模時候根據我上面的邏輯去校驗樣本可接受缺失比例的balance point,然後判斷哪些欄位是需要繼續操作,哪些欄位可以直接捨棄。

1.3 是否進行缺失值填補

通過第二步我們已經知道哪些欄位是可以繼續操作下去的,這個時候我們就要選擇用什麼方法去對缺失資料處理。

統計學上的缺失值處理常用手法有特徵值(mean/median…)替換、線性插值等,但實際建模中更常用的是結合業務邏輯匹配,或者作為MISSING不做處理。

舉個前面系列文章的例子,如果我們分析產品的業務線前端採集到了使用者的身份證照片,這個照片不僅僅可以用來ORC活體檢測,身份證裡的資訊資料可以進行邏輯匹配填補諸如常住地、性別、年齡等這些因為前段錄入操作原因造成的資料缺失。

比如我們的age這個欄位有資料缺失,但是缺失比例是我們可接受範圍內,此時我們就可以通過身份證號的編碼規則來推斷匹配這個申請客戶的年齡,通過這種匹配方法填補的缺失值往往更加能反應客戶的真實資訊。

對於接入不同徵信公司造成的某些關鍵欄位的資料缺失,同樣缺失比例是我們可接受範圍內,這個時候就需要參考這個欄位的衍生邏輯來選擇用什麼方法來填補,更多的做法是不做缺失值填補,作為MISSING單獨一組。

好啦,關於缺失值的資料清洗我根據個人理解簡單的總結到這裡,如有異議可留言討論。還是概要為一句話:

資料清洗缺失值,保證比例選邏輯

更多金融風控知識,請關注【金融科技應用學苑】公眾號