融360蔣巨集:自動化特征工程和自動建模在風控場景的應用

来源:https://www.cnblogs.com/datafuntalk/archive/2022/06/08/16355318.html
-Advertisement-
Play Games

01 背景和問題 目前,模型開發的流程越來越規範化,通常可以分為業務分析、樣本準備、特征工程、模型構建、模型評估及監控這幾個步驟。其中,特征工程和模型構建在建模的整個流程中依然非常耗時,並且非常依賴於模型開發者對業務的理解及數據處理的能力。 在目前實際業務場景下,面臨的最大的一個問題是,如何快速地構 ...


file


01 背景和問題

目前,模型開發的流程越來越規範化,通常可以分為業務分析、樣本準備、特征工程、模型構建、模型評估及監控這幾個步驟。其中,特征工程和模型構建在建模的整個流程中依然非常耗時,並且非常依賴於模型開發者對業務的理解及數據處理的能力。

在目前實際業務場景下,面臨的最大的一個問題是,如何快速地構建起一個質量相對不錯的模型,以適應業務的快速發展。傳統的風控建模周期較長,通常要20天左右的時間才能達到上線的要求。其中,特征工程的耗時在整個建模過程中會占到大約60%的時間,且這個過程的挑戰就是人工提取特征的複雜性和高時間耗費性。自動化特征工程能夠對必要而繁瑣的工作進行自動化處理,從而優化機器學習模型的構建和部署,這樣模型的開發者就可以更多地關註其他重要步驟。另一方面,模型開發過程的耗時在整個建模過程中會占到大約30%的時間。這個過程的難點並不在於給出一個模型,而是在於同時比較多種模型甚至多種模型組合後,選出效果最佳的模型做主決策模型,其餘的模型可以作為備用模型或者比較對象。這個過程如果用人工去實現,也會消耗非常多的時間,並且效果不一定最優。

file

基於這樣的背景,融360推出的自動化特征工程和自動建模的方案,把建模過程中耗時最長的特征工程部分和模型開發部分抽象出了一套自動化工具。不僅集成了自動特征工程,還對建模過程中變數的篩選、建模調優、部署上線和模型監控進行了模塊化的封裝。該工具有如下優點:

① 大幅提升建模效率和標準化程度;

② 節約人力成本和時間成本;

③ 快速達到業務方要求;

④ 有利於嘗試更多的模型方案和模型快速更新迭代。

通過自動化特征工程和自動建模方案後,模型從開發到上線的時間大幅減少,可以縮短至5天左右,不僅簡化了開發流程,提升了開發效率,準確率方面也保持較高水準。

file

--

02 自動化特征工程

首先,我們先來看一下手動特征工程是如何完成特征工程這個過程的。人工構建特征工程主要依賴領域知識來構建特征,一次只能產生一個特征,這是一個繁瑣,費時又易出錯的過程。此外,每次進行特征工程的代碼是針對特定業務和特定場景的。當我們面對新的需求、新的數據源時,我們需要重構特征,重新進行開發,耗時長效率低。

因此,特征工程若要能夠實現自動化和標準化,其數據在結構上必須要具有一定的相似性和共通性。根據美國資料庫營銷研究所Arthur Hughes的研究,客戶資料庫中有三個神奇的要素,這三個要素構成了數據分析最好的指標:

① 最近一次消費(Recency);

② 消費頻率(Frequency);

③ 消費金額(Monetary)。

在眾多的客戶關係管理(CRM)的分析模式中,RFM模型是被廣泛提到的。RFM模型是衡量客戶價值和客戶創利能力的重要工具和手段。該模型通過一個客戶的近期購買行為、購買的總體頻率以及花了多少錢三項指標來描述該客戶的價值狀況。

file

在融360的業務場景下,更多的數據是交易級別的數據。那麼,根據RFM模型構建出來的特征通常包含基本的統計變數,趨勢型的變數等。例如,通話的時間段可以分為白天或者夜晚,通話類型可以分為主叫、被叫或者未接,交易金額總和、次數等等,這些都屬於統計型變數。而類似於近3個月比近6個月的通話次數減少了多少,這是趨勢型變數。

file

不僅是結構化數據,在關係網路中也可以通過RFM模型構建特征。如下圖所示是一個簡單的關係網路。應用RFM模型,可以構建出例如某用戶有多少1度聯繫人,1度聯繫人中是否有過借貸行為,平均借款金額,以及其中有多少人有逾期記錄等特征。

file

綜合以上分析過程,可以將自動化特征工程的過程抽象成如下圖所示的框架。首先,根據不同的數據類型,採取不同的處理方式。如果是分類變數,可以切分成不同的數據模塊,用統計型或者標識型的方法去處理,完成第一層的聚合運算,生成基本的統計特征。那麼在第二層中,會對基本的統計特征採取比值計算和趨勢計算的一些方法,衍生出新的變數。

file

回顧特征工程的整體過程,有了自動化特征生成工具之後,模型開發者關註的重點不再是構建能夠通過簡單運算得到基本的統計特征,而是能夠有更多的時間關註數據本身。而需要人工處理的部分僅是從原始數據到把數據標準化的過程,後續的特征自動組合、計算,以及評估到輸出都實現了自動化的過程。

file

下圖所示是某項目中,自動化特征工具和人工構建特征在同一數據集上的比較。可以看到,自動化特征相對人工特征效果明顯提升且耗時更短。當然,開發自動化特征工具的目標並不是為了替代人工,而是希望自動化特征工具能夠快速並且準確地提供一版基礎特征,從而把人力更多地投入到對原始數據的理解以及對業務分析中,或者構建出更多衍生的特征。

file

--

03 自動建模

儘管不同的數據樣本和不同的模型選擇,得到的結果會有較大差異。但各項指標綜合來看,目前不管是國內外的數據競賽,或者是回歸到公司業務本身,xgboost和lightGBM依然是適用性最好,表現最優的演算法之一。而在信貸場景下,LR因其較好的解釋性,也被廣泛使用。因此,自動化建模工具整合了常用的演算法,針對建模過程中通用性較高的部分進行了模塊化的封裝。這樣極大地提升了開發效率,並且可以將更多的時間用於嘗試不同的模型。

file

1.自動特征選擇部分:

首先,自動通過EDA(Exploratory Data Analysis)對特征進行初步篩選,例如篩選掉缺失率較高,方差恆定不變,在時間維度上不夠穩定等特征。其次,自動綜合多種常用演算法和規則,進一步篩選出有效的特征。例如:

① IV值篩選;

② 樹模型輸出重要性;

③ 共線性篩選。

最後,選擇出綜合排序TopN,以及各個類別中排名靠前的特征。可以把幾千維度的特征降低到幾百個維度的範圍內,並且在減少特征的同時,保留特征的多樣性。

file

2.建模部分

邏輯回歸模型(LR)
LR在信貸場景下,通常用於構建評分卡模型。首先回顧一下邏輯回歸實現評分卡的理論基礎。

一個事件發生的幾率(odds),是指該事件發生與不發生的概率的比值。若一個用戶違約的概率是p,則其正常的概率為1-p。可以得到:

file

此時,客戶違約的概率p可以表示為:

file

而評分卡的表達式為:

file

其中,A和B為常數。通過給定 (1)某特定Odds時的Score值(2)該特定Odds值翻倍時Score增加值,帶入評分卡表達式即可求得A、B。

而根據邏輯回歸的原理可推導出該事件的對數幾率如下:

file

因此,構建評分卡的問題轉化為利用邏輯回歸模型求概率的問題,最後根據概率轉化成評分卡的分數。

file

構建評分卡模型中最關鍵的步驟是WOE分箱,分箱的好壞直接影響最後模型的效果。傳統的處理方式是,人工根據特征的業務含義,對特征進行一些粗分箱。抽象成自動化工具後,統一對特征進行等頻分箱後做WOE變換,並且進行單調性檢測。同時,也保留了人工操作的介面,可以自由調整分箱的邊界,達到更優的效果。

  • XGBOOST

xgboost是目前應用最廣泛的演算法之一。不僅在多種競賽場合取得非常好的成績,在工業界也有廣泛應用。在自動化建模的過程中,為了能讓xgboost發揮出更好的效果,需要針對入模變數做額外的預處理。連續變數雖然可以直接入模,但為了減少過擬合,依然對連續變數進行了分箱處理。而分類變數則不能直接入模,可以通過決策樹進行分箱的操作,或者通過各種編碼方式對變數進行轉換,例如標記編碼,one-hot編碼等等。

file

除了對入模的特征實現預處理,自動化建模工具還集成了更全面的調參方法,包括:設置多組經驗參數、GridSearch、RandomSearch等,這個過程也是人工調參中耗時較長且重覆性較高的步驟之一。

--

04 自動化模型評估與監控

在完成模型開發後,最重要的一個環節就是模型評估與模型的監控。在各種數據競賽中,評估一個模型的好壞,通常會用AUC、KS等指標。但在實際場景中,模型上線後需要關註的不僅僅是這些模型的評估指標。更加需要關註的是模型整體的排序性和穩定性。在不同的業務場景下,對模型的要求也不一樣。例如,在欺詐檢測的場景下,會希望模型在低分段有更好的區分度。反之,如果要做授信額度策略,則會期望模型在高分段有更好的區分度。

自動化模型評估在實現全面、細緻、快速地評估模型效果方面,主要涵蓋了以下三個方面:

① 跨維度:變數維度、模型分維度;

② 跨樣本:Train、Test、OOT、Early Performance等;

③ 跨模型:當前線上模型、不同版本新模型。

file

跨維度層面,包括對特征的監控以及特征對模型結果的影響。除了關註模型的基本監控指標AUC、KS、PSI、Ranking等,在變數維度,還會關註變數隨著時間的變化,排序性是否下降,PSI是否升高,以及特征是否對模型結果產生了負面影響等因素。

跨樣本層面,由於在模型開發的過程中,經常會使用比較成熟的表現期的樣本,例如MOB6進行建模,但在評估模型的時候,可以用MOB1的樣本進行跨期測試,用來判斷模型的早期效果。

跨模型層面,不同的模型有不同參數,會針對不同的模型進行比較。看當前線上的模型和新版本模型之前的效果差異。

最後,根據以上三個維度的評估,會進行加權求和,輸出模型最終的綜合評分以及模型相關內容的文檔,包括模型表現的彙總、特征分箱的結果、變數的PSI、變數與逾期率的關係等內容。

--

05 模型部署上線及線上監控

相較於傳統的寫python腳本完成從訓練、預測到輸出結果的模型上線方式,目前更常用的方法是輸出模型文件,線上的部署環境支持讀取和調用模型文件。但融360開發了針對模型部署的平臺,省略了開發模型部署的腳本。模型自動輸出配置文件,只需將配置文件放如新模型的文件夾中,就可以輕鬆完成上線部署,實現自動評分。並且配置文件具有簡潔和良好的可讀性等優點。

file

模型上線後的線上監控也是非常重要的環節之一。如果模型的監控僅依賴於各個模型的owner,那麼會產生非常多的問題,例如不能及時發現AUC、PSI等模型指標的變化,缺失對特征變化的監控,模型何時需要重新訓練,更新迭代等等。針對這些問題,融360開發了自動化模型監控工具,實現標準輸入,標準輸出。新模型配置監控不再需要重寫代碼,只需配置文件即可。

file

模型的每日監控會與模型上線時候的指標做對比。一方面,整體監控KS、AUC、PSI、排序性等指標是否發生變化,另一方面,關註每個變數在訓練時的分箱與上線後的分箱的差異,看特征的分佈是否發生了偏移,實現自動預警。

當監控發生報警時,會提醒模型開發者哪些地方出現了問題,從而能夠及時響應。例如,當變數發生偏移的時候,考慮是否是數據源發生了波動,業務客群是否發生變化,是否需要與產品團隊、策略團隊進行對接等問題。

file

最後,模型的監控以三種形式輸出:監控周報、定時預警以及模型效果可視化。


今天的分享就到這裡,謝謝大家。
本文首發於微信公眾號“DataFunTalk”。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 為什麼要使用Vite 在瀏覽器中提供ES模塊之前,開發人員沒有以模塊化方式編寫JavaScript的本機機制。這就是為什麼我們都很熟悉“捆綁”的概念:使用工具來抓取、處理和連接源模塊到可以在瀏覽器中運行的文件中。 隨著時間的推移,我們看到了webpack、Rollup和Parcel等工具,它們極大地 ...
  • 英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BULL SA. Written by [email protected] Portions Cop ...
  • 一 、通過雲開發平臺快速創建初始化應用 1.創建相關應用模版請參考鏈接:基於Vue的極簡生成器 — Vuepress 2.完成創建後就可以在github中查看到新增的vuepress倉庫 二 、 本地編寫 Vue文檔風格的技術文檔/博客 1.將應用模版克隆到本地 首先假定你已經安裝了Git、node ...
  • 本文參考書:操作系統真像還原、電腦組成原理(微課版) 所謂記憶體管理包含: 物理記憶體 虛擬地址空間 以上就是記憶體管理中所要管理的資源。那麼記憶體管理的第一步就應該是整理出這兩種資源。 物理記憶體要分為兩部分: ①內核記憶體 ②用戶記憶體 在內核態下也經常會有一些記憶體申請,比如申請個pcb、頁表等等。內核態和 ...
  • 基本元器件原理及功能 常用元器件 CAP 電容 RES 電阻 CRYSTAL 晶振 7SEG 數位管 sounder 蜂鳴器 BUTTON LED-BIBY 發光二極體 二極體PN結,P陽極N陰極,電流方向P極流向N極 共陰極高電平亮,共陽極低電平亮 數位管 dp g f e d c b a 0 0 ...
  • 作為目前資料庫引擎的兩種主要數據結構,LSM-tree和B+-tree在業界已經有非常廣泛的研究。相比B+-tree,LSM-tree犧牲一定的讀性能以換取更小的寫放大以及更低的存儲成本,但這必須建立在已有的HDD和SSD的基礎上。 探索前沿研究,聚焦技術創新,本期DB·洞見由騰訊雲資料庫高級工程師 ...
  • 一般我安裝mysql用以下兩個方法: 一.phpstudy環境下的mysql安裝 只需將mysql的bin目錄配置到系統環境變數即可, 輸入預設密碼root即可登錄 二.本地直接安裝mysql資料庫 1.官網下載鏈接:https://dev.mysql.com/downloads/mysql/ 2. ...
  • 位元組的 DataCatalog 系統,在 2021 年進行過大規模重構,新版本的存儲層基於 Apache Atlas 實現。遷移過程中,我們遇到了比較多的性能問題。本文以 Data Catalog 系統升級過程為例,與大家討論業務系統性能優化方面的思考,也會介紹我們關於 Apache Atlas 相... ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...