風險三方數據管理的HeadFirst

0 評論 2596 瀏覽 8 收藏 27 分鐘

三方數據希望能夠解決自己的部分工作事務,以留出更多的時間來處理其他事務。那么關于三方數據該如何進行管理呢?需要注意一些什么問題?本文梳理了相關工作流程,分享了三方數據掃盲貼,希望對你有所幫助。

日常工作過于繁瑣,以至于感覺自己又從產品轉型成商務了。所以就三方數據管理希望交出部分工作以解放其余工作的時間。常規風控系統、應用的討論,至少在人人都是產品經理上,已經涉及了決策引擎、大數據平臺等,但如果就三方數據的日常管理作為一項單獨工作的討論較少。

在《征信業務管理辦法》實施近一年,“過渡期”越來越短的當前,三方數據管理應當可以單獨設置一個篇幅來討論日常的工作流程。此文既作為對接手三方數據部分工作的同事的掃盲貼,也作為自己這項工作的總結,以供同行討論批評。

一、《征信業務管理辦法》相關

2022年后的三方數據管理,是繞不開此辦法的出臺及執行的。此管理辦法共計八章53條,共計4800字左右,預計十五分鐘左右可以閱讀完。其也是基于原征信業管理辦法、之前試點八家征信機構的實際,所出臺的。網上有諸多解讀,不再贅述,挑選幾個我個人覺得比較重要的點摘錄解讀。

第三條 本辦法所稱征信業務,是指對企業和個人的信用信息進行采集、整理、保存、加工,并向信息使用者提供的活動。
本辦法所稱信用信息,是指依法采集,為金融等活動提供服務,用于識別判斷企業和個人信用狀況的基本信息、借貸信息、其他相關信息,以及基于前述信息形成的分析評價信息。

相較于八家征信機構試點期間的情況,當時對于“個人信息”,及“個人征信信息”,是缺乏一個明確的界定的,大都特指一些多頭借貸數據,以及在各種不同的機構中借款的借貸信息等。至于如行程軌跡信息,支付信息等,我個人理解在之前是從未明確說明是否為“信用信息”的。根據本辦法的解讀,個人理解“只要用于金融活動”,即可稱為“信用信息”。即“信用信息”的內涵被擴大。

第五條 金融機構不得與未取得合法征信業務資質的市場機構開展商業合作獲取征信服務。本辦法所稱金融機構,是指國務院金融管理部門監督管理的從事金融業務的機構。地方金融監管部門負責監督管理的地方金融組織適用本辦法關于金融機構的規定。
第五十條 以“信用信息服務”“信用服務”“信用評分”“信用評級”“信用修復”等名義對外實質提供征信服務的,適用本辦法。

此條基本上堵死了所有原三方數據公司的路,使其不得不轉型。所有持牌金融機構不得與百行、樸道之外的機構合作。不論之前的名義與形式如何,此兩條與上述第三條結合,基本上框死了三方數據機構、征信機構及應用方的位置。

第十二條 征信機構采集個人信用信息應當經信息主體本人同意,并且明確告知信息主體采集信用信息的目的。依照法律法規公開的信息除外。
第二十三條 信息使用者應當采取必要的措施,保障查詢個人信用信息時取得信息主體的同意,并且按照約定用途使用個人信用信息。

此兩條規定了采集方和使用方雙方的一個要求。即采集方需要獲得授權,同時使用方也得獲得授權?;谝陨先齻€部分,金融機構使用任何信息應用于金融業務,都需要通過百行、樸道進行,即所謂的數據”斷直連”。

二、三方數據掃盲

1. 三方數據是平常買的菜

常規的量化風控決策,上游大體是核心系統、CRM系統,推送的客戶信息由路由分解給人工審批或量化引擎(也存在量化引擎判斷’存疑’的客戶再推送給人工審批的可能)。決策引擎收到客戶信息后,結合數據集市、標簽管理平臺(衍生變量計算平臺)、風控模型管理平臺,對客戶的是否為黑名單進行判斷,對客戶的綜合評分判斷是否準入。

三方數據參與數據集市及標簽管理平臺,乃至作為一個入參參與模型的管理和變更。如果其他系統平臺是鍋碗瓢盆的話,三方數據更類似于每天要去菜市場采買的菜。

一個常規的策略做飯過程為:客戶->基礎核驗->涉法核驗->反欺詐評估->多頭借貸情況評估->評分定價評估->自有模型評估。每個環節都需要不同數據產品參與。

2. 市場上都有什么菜

就三方數據,在淺薄的認知中沒有一個權威的指導標準。結合近兩年的工作,大體整理如下。在此沒有包含人行征信數據,人行征信數據是一個不斷完善的整體畫像,不能單純的歸為哪類。需要單獨說明的,是“其他”類的數據,關于反洗錢的名單、貸后管理的情況及學生身份確認,不甚清楚是只有持牌機構會被監管機構關注到,還是全行業均有同樣的需求和問題。

不論各家公司產品描述的如何花里胡哨,但是分類上是一定能劃分進如下的分類的。誠然,不同的公司在技術實力、數據源獲取能力上,有一定的差異,但是在穿透過去的原始數據源中,一定仍然是那些信息。

因此在之前的三方數據引入中,曾經想過全數據類型制霸。但介于種種原因,最后并未完成。定性認知上覺得可能效果不錯的三方支付通道的支付數據,也因為種種原因沒有完全覆蓋。

曾經設想過,因為金融交易總歸會體現在賬戶余額變動上,如果可以合理合法地獲取用戶基于銀聯、網聯、三方支付(支付寶、微信、平安付)的全部評分,很可能能做出來一個干凈的客戶畫像,但因為難度太大而作罷。希望百行、樸道入場后,有一天可以基于這個想法來談談經驗。

核驗類的數據均來源于權威數據源,這個“權威”是指,公安一所三所、銀聯、及三大運營商。市面上所提供此類驗證服務的,原始數據源也只可能是這幾家權威數據源?!鲂蓬?#8217;核驗,社保相關評分、工作公司驗證除金保信外,似乎沒有其他可輸出的權威數據源。車輛信息,歷史有部分險司或者導航公司輸出過。公積金信息據了解至今未完全地全國聯網,各家數據源也是只能輸出部分信息。

其他商業險、增信保險出險情況等,了解到也只有銀保信在輸出。

風險名單類整體分為兩個部分,一是金融機構的黑名單,如各公司自行積累的,歷史逾期超過一定時間的客戶情況,另如歷史在P2P頻繁借款及逾期的客戶情況;另外二是公檢法類的黑名單,如客戶被起訴、被執行、乃至涉及犯罪的信息。就實際感受來講,這部分黑名單從定性上來說,確實可以理解其“風險性”。

但是沒有條件,也不敢,也未曾見過其他機構去測試,稍微放寬一下要求后,整體的不良率表現如何。消費金融或小貸公司,本身就面對著下沉客戶,用黑名單歷史框死客戶,是否會導致之后的客戶做無可做。

評分是各家公司主要輸出的產品。不論名稱多么花里胡哨,按業務流程上只分為綜合、反欺詐、貸中三類。至于貸后評分,因為討論的主要是準入側的問題,就沒有納入。當然各家公司也可以與輸出方進行聯合建模,單獨列出來是想說明其特殊性。

各類評分就如同碳水雕花。評分有其顯著的優點,如不需要過多去研究內在邏輯和關聯性,測試起來簡單明了,基本上跑一遍LR,大體會有一個初步的結果。但其顯著的缺點也是這個,以前討論LR/xgb+boost等方法的優缺點時,經常會說到,LR的變量具有清晰地解釋性,但xgb方法,經常跑的結果莫名其妙。

但是評分這類產品,LR的解釋性優勢也當然無存。但是某種意義上來說,“如非必要,勿增實體”的原則,在評分類產品中我個人理解是做的不太好的。經??梢钥匆娭T多公司提供長篇累牘汗牛充棟的評分產品。但測試起來相關性肉眼可見的高,對產品的增益也非常的接近。這就純屬浪費使用方時間了。

變量、標簽、畫像與評分實際上是沒有刀琢斧砍的清晰的分界線的。與評分的差異,在于其字段名稱中,就業務上可以提供一些信息,如某字段的名稱叫做“客戶近一個月xx行為的分級”,就可以多提供一些業務上的信息,比揉成一坨的評分要稍微強些。

畫像提供的變量,基本上可以滿足自行建模的需求了,當然實際使用中也就會開始存在“你不知道為什么這個變量有用,但他就是有用”的情況。

3. 怎么去買菜

在《辦法》執行后,一開始我盼望著以后買菜,只需要找比如百行的郝芳晨、雷國軍,以及樸道的陶乾幾位厲害的老師。

但實際執行下來,基于三方數據從一開始就有的幾個痛點,如①數據公司的數據源所提供的數據,與你的客戶不可能完全重疊,即覆蓋率一定會有問題 ②百行樸道所覆蓋的數據源也是不斷完善,而不是已經覆蓋了全行業的所有數據 ③另,每個公司策略實施的實踐是不一樣的。假如同行業的策略組都想做個“四喜丸子”,在其他公司的策略都是紅燒的做法的時候,你是攔不住本公司的策略組結合

實際想做醋溜四喜丸子的。因此,在買菜之前,還是有一些流程要進行。

(1)三方數據公司的選擇

針對實際原始的數據源公司,首先是有些唯一的排他性規則。即如果公司沒有客戶對其的清晰授權,不接;公司與樸道百行沒有完成合作,不接。在過渡期到明年6月都截止的情況下,現在還去新增接入一些合規上可能有瑕疵的公司,是可能存在問題的。當然,這部分的兩條要求其實可以簡化為一條,即實際接入還是得通過百行樸道,由監管授權的征信機構對數據合規性進行審查即可。

(2)菜的選擇

接入什么數據,其實主要還是看目前策略模型執行過程中,缺少哪些數據。這些是因公司,而且因策略實施而變化的。一個數據公司敢做這部分業務,且活過三年,自有其可取之處。也不必踩高捧低。

(3)數據的測試

按我執行的實際,在接入三方數據之前,是需要進行初步的一些評估的,從流程整體最優的角度,這也是為了減少不必要的合同簽署及流程對法務及綜合同事的壓力。這一部分也需要結合數據產品實際情況去做。在下面篇幅中再行展開。

(4)過會、采購、合同簽署

執行的實際中,因牽涉費用等問題,三方數據的測試引入是需要經過會議審議和采購流程的。這些不同公司實際情況不同,按下不表。

(5)日常對賬、開票、付款等

4. 科技與狠活

三方數據既然作為一種“菜”,自然也存在美化造假的可能,這里稍微展開說一下幾個常規的科技與狠活。

結果造假:既然談到數據測試,則數據測試就存在抽樣的問題,但抽樣的客戶,一定是貸后行為已經表現了的。理論上我們需要測試回溯所以也就存在一種可能性,即利用貸后情況對三方數據的效果進行一些’調整’。

這樣的調整,其實是會讓使用方誤解產品的實際效果的。就實際效果而言,KS15-18的產品,是最令人放心的,10-15的產品,感覺效果一般,10以下的產品,又根本沒辦法寫測試報告。但是KS超過20的產品,就應該開始謹慎。至于KS40以上的產品,我個人理解只有理論可能。但與單純的批評這樣的行為來說。

實際上可以多想一步,既然此產品可以更快地發現客戶的貸后行為,或者基于現有數據能將KS做的非常高。那么反過來想,這個公司的產品,可能可以考慮在貸中使用。

效果衰減:三方數據是存在衰減的可能性的。假如最上游的數據產生了變化,或者在與欺詐客戶的攻防中,欺詐團體調整了自己的策略?;蛘邌渭兊淖约旱漠a品特質、客群發生了變化;再或者就是三方數據源,基于成本考慮,在使用過一段時間后,對產品的上游數據源進行了變更;都會導致效果的衰減。因此,三方數據也是需要定期的再次評估。

三、什么是好的三方數據

這部分純屬一些基礎概念展示掃盲,在其他的文章及其他的網站上,都有大量的展示,建議已經了解的直接跳過。

1. 評估三方數據的流程

大部分經驗貼中都在強調量化指標的評估,但三方數據評估的上下游也直接決定評估效果。

從流程上講,大體有:結合業務情況抽取樣本->提交測試流程->對產品進行初步評估->通過模型對所有數據產品進行綜合評估

2. 抽樣的注意事項

在抽樣過程中,基于目前現有的,測試樣本只能支持2萬到3萬的現狀。建議還是有針對性的進行選擇。選擇具體的場景和業務,而不是雨露均沾的全隨機抽樣。至于黑樣本量的占比,目前實際會設置占比10%左右。這部分如果有同業有更好的建議,也希望斧正。

3. 評估

在量化指標之前,日常評估和分析的過程中,首先要對返回結果的分布進行觀察。

根據大數定律,如果抽樣整體比較均勻,不考慮黑樣本的情況下,則分數,也應當服從正態或者偏態分布。考慮到不良率是做的,則分數應當服從一定的雙峰分布。如果分布上就比較詭異,這個產品可能效果也不佳。

另外,盡管量化的指標可以評估效果。但是理論上講,如果是連續的分數評分的話,從高到低應該有足夠的單調性,這也是在分箱的過程中就需要觀察的。

如分布不佳,單調性也不佳,即使總的IV好看,也是不能使用的。

如何評估一個三方數據是否優秀,有哪些量化的指標?數學部分建議直接翻CSDN。

(1)覆蓋率

三方公司提供的數據產品,與客群之間是存在一定的差異的。理論上講,產品的覆蓋率就不應該是100%。其他量化指標與覆蓋率需要綜合來看情況。如果覆蓋率只有40%、50%,即使IVKS較高,但可能實際使用上也有問題。

(2)黑名單準確度

針對黑名單類產品。預測逾期的/實際逾期的+預測不逾期的/實際不逾期的。用來評估黑名單類產品好壞。

(3)KS

KS(Kolmogorov-Smirnov):KS用于模型風險區分能力進行評估, 指標衡量的是好壞樣本累計分部之間的差值。
好壞樣本累計差異越大,KS指標越大,那么模型的風險區分能力越強。人話:MAX(累計壞客戶 – 累計好客戶)。

(4)WOE/IV

WOE的全稱是“WeightofEvidence”,即證據權重。WOE是對原始自變量的一種編碼形式。分箱后做一些處理。

pyi是這個組中響應客戶(風險模型中,對應的是違約客戶,總之,指的是模型中預測變量取值為“是”或者說1的個體)占所有樣本中所有響應客戶的比例,pni是這個組中未響應客戶占樣本中所有未響應客戶的比例,#yi是這個組中響應客戶的數量,#ni是這個組中未響應客戶的數量,#yT是樣本中所有響應客戶的數量,#nT是樣本中所有未響應客戶的數量。

人話:iv即在該分箱內,這個數據在多大的程度上解釋“現象”。

(5)PSI

檢驗變量的穩定性,當一個變量的psi值大于0.0001時,變量不穩定。一個變量,將它的取值按照分位數來分組一下,每一組中測試模型的客戶數占比減去訓練模型中的客戶數占比再乘以這兩者相除的對數,就是這一組的穩定性系數psi,然后變量的psi系數就是把這個變量的所有組的psi相加總起來。

人話:這個產品在這個月的客戶上厲害,但是下個月會不會出現差異的評估。

(6)貢獻度等

在此就不做展開了

以評分產品舉例,日常初步評估的代碼實例:

— coding: utf-8 —
import numpy as np
import pandas as pd
data_test=pd.read_excel(“”)
data_test.shape
data_test.info()
data_test.head(10)
eda=data_test.describe()
path=”
bin=分箱數

#no1.缺失及覆蓋率
miss_rate=data_test.isnull().sum()
miss_rate=miss_rate.reset_index()
miss_rate=miss_rate.rename(columns={‘index’:’varname’,0:’miss_num’})
miss_rate[‘miss_rate’]=miss_rate[‘miss_num’]/樣本量
miss_rate.to_excel(path)

#no2.黑名單標簽類的準確性
verify_true = data_test[((data_test[‘blackflag’]==1)&(data_test[”]==1)) | ((data_test[‘blackflag’]==0)&(data_test[”]==1))]
print(verify_true.shape)

#no3.整體相關性
df_new=data_test.drop([‘cust_name’,’id_no’,’mobile’,’blackflag’],axis=1)
corr=df_new.corr()
corr.to_excel(“path”)

#no4.IV
def cal_iv(data,cut_num,feature,target):
data_cut=pd.qcut(data[feature],cut_num,duplicates=’drop’)
cut_group_all=data[target].groupby(data_cut).count()
cut_y=data[target].groupby(data_cut).sum()
cut_n=cut_group_all-cut_y
df=pd.DataFrame()
df[‘sum’]=cut_group_all
df[‘bad_count’]=cut_y
df[‘good_count’]=cut_n
df[‘bad_rate’]=df[‘bad_count’]/df[‘bad_count’].sum()
df[‘good_rate’]=df[‘good_count’]/df[‘good_count’].sum()
df[‘woe’]=np.log(df[‘bad_rate’]/df[‘good_rate’])
df[‘iv’]=df[‘woe’]*(df[‘bad_rate’]-df[‘good_rate’])
df.replace({np.inf:0,-np.inf:0},inplace = True)
iv=df[‘iv’].sum()
print(feature,’IV’,iv)
df.to_excel(“path/{}.xlsx”.format(feature))
return(feature,iv)
column_list=df_new.columns.tolist()
df_iv_result=[]
for i in column_list:
df_iv_result.append(cal_iv(data_test,bin,i,’blackflag’))
data_iv=pd.DataFrame(df_iv_result)
data_iv=data_iv.rename(columns={0:’feature’,1:’iv’})
data_iv.to_excel(“path”)

#no5.KS
def cal_ks(data,cut_num,feature,target):
data_cut=pd.cut(data[feature],cut_num)
cut_group_all=data[target].groupby(data_cut).count()
cut_y=data[target].groupby(data_cut).sum()
cut_n=cut_group_all-cut_y
df=pd.DataFrame()
df[‘sum’]=cut_group_all
df[‘bad_count’]=cut_y
df[‘good_count’]=cut_n
df[‘bad_rate’]=df[‘bad_count’]/df[‘bad_count’].sum()
df[‘good_rate’]=df[‘good_count’]/df[‘good_count’].sum()
df[‘good_rate_sum’]=df[‘good_rate’].cumsum()
df[‘bad_rate_sum’]=df[‘bad_rate’].cumsum()
df[‘ks’]=abs(df[‘good_rate_sum’]-df[‘bad_rate_sum’])
ks=df[‘ks’].max()
print(feature,’KS:’,ks)
df.to_excel(“path/{}.xlsx”.format(feature))
return(feature,ks)
df_ks_result=[]
for i in column_list:
a = list(cal_ks(data_test,bin,i,’blackflag’))
df_ks_result.append(a)
data_ks=pd.DataFrame(df_ks_result)
data_ks=data_ks.rename(columns={0:’feature’,1:’ks’})
data_ks.to_excel(“path”)

注意,path,分箱數需要指定。根據經驗,分箱越多,可能ks/iv越高。

四、結語

關于是否三方數據相應問題,其實還想展開說幾個討論。

如通過百行、樸道的三方數據引入,應當通過單一來源還是公開招標。三方數據的初步評估,比較簡單無腦,是否可以作為數據管理運營平臺的一個功能去處理。以及百行樸道之后,多頭的數據是否

有了新的解決方案等。或者業務斷直連和三方數據斷直連到底銜接順序和關系如何。

限于篇幅問題,而且這些問題并沒有標準的答案,就此打住吧。

本文由 @肥柴周 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自 Unsplash,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!