馮寧
摘?要:隨著全球經(jīng)濟(jì)的快速發(fā)展以及資本市場(chǎng)的壟斷,無(wú)論是企業(yè)的發(fā)展還是人們超前消費(fèi)觀念的提前到來(lái),貸款已成為企業(yè)和個(gè)人解決經(jīng)濟(jì)問題的一種重要手段。對(duì)于銀行業(yè)或者小貸機(jī)構(gòu)而言,信用卡以及信貸服務(wù)是高風(fēng)險(xiǎn)和高收益的業(yè)務(wù),如何通過用戶的海量數(shù)據(jù)挖掘出用戶潛在的信息即信用評(píng)分,并參與審批業(yè)務(wù)的決策從而提高了風(fēng)險(xiǎn)防控措施,該過程不僅提高了業(yè)務(wù)的審批效率而且給予了關(guān)鍵的決策,同時(shí)風(fēng)險(xiǎn)防控如果沒有監(jiān)測(cè)到位,對(duì)于銀行業(yè)來(lái)說(shuō)會(huì)造成不可估量的損失,因此這部分的工作是至關(guān)重要的。通過某銀行脫敏的信用卡客戶數(shù)據(jù),通過建立現(xiàn)階段比較熱門的機(jī)器學(xué)習(xí)Logistic模型來(lái)研究客戶信用的關(guān)鍵指標(biāo)對(duì)模型的作用,從而對(duì)信用卡用戶的違約情況進(jìn)行提前預(yù)測(cè)分析。個(gè)人貸款違約預(yù)測(cè)模型的建立以及后期的關(guān)鍵指標(biāo)的探索,在銀行業(yè)或者小貸機(jī)構(gòu)的貸前審批以及貸中的管理決策中都有很好的指導(dǎo)作用,并且具有很強(qiáng)的實(shí)踐性和意義。
關(guān)鍵詞:python;Logistic模型;違約
中圖分類號(hào):D9?????文獻(xiàn)標(biāo)識(shí)碼:A??????doi:10.19311/j.cnki.1672-3198.2019.17.080
1?引言
本文建立個(gè)人貸款違約預(yù)測(cè)模型的目的是利用銀行脫敏的數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì)分析,來(lái)提前預(yù)測(cè)客戶在貸款期間的違約概率,從而幫助銀行的業(yè)務(wù)人員明確客戶的更多有意義的指標(biāo)變量,及早發(fā)現(xiàn)貸款的潛在損失。本章主要對(duì)項(xiàng)目的背景與選題來(lái)源,國(guó)內(nèi)外發(fā)展?fàn)顩r,以及研究意義和目的,相關(guān)研究成果進(jìn)行大致說(shuō)明,并討論了創(chuàng)新點(diǎn)。
1.1?項(xiàng)目背景與選題來(lái)源
目前,在經(jīng)濟(jì)快速發(fā)展的時(shí)代,貸款的風(fēng)險(xiǎn)審批是商業(yè)銀行面臨的首要問題。貸款中風(fēng)險(xiǎn)的產(chǎn)生,不僅在貸款審查階段出現(xiàn),而且貫穿整個(gè)貸款流程中:在實(shí)際貸款審批流程中,大多數(shù)的審貸過程并非十分嚴(yán)謹(jǐn)和周全,因此不良貸款的概率會(huì)日漸飆升,在這樣的背景下,建立一個(gè)科學(xué)有效、有解釋力度的模型對(duì)貸款客戶的信用進(jìn)行評(píng)估與判定,從而將違約的風(fēng)險(xiǎn)降到最低并將利潤(rùn)最大化是刻不容緩的事情。對(duì)信用風(fēng)險(xiǎn)的識(shí)別與防控是商業(yè)銀行風(fēng)險(xiǎn)管理研究的重要內(nèi)容,是金融機(jī)構(gòu)不可回避的核心問題,也是各國(guó)政府與金融機(jī)構(gòu)風(fēng)險(xiǎn)管理的焦點(diǎn)。因此,為了更好解決風(fēng)險(xiǎn)管理中的問題,本文涉及的數(shù)據(jù)包含銀行客戶的交易數(shù)據(jù),而且涉及大部分貸款信息與眾多信用卡的數(shù)據(jù),通過分析這些數(shù)據(jù)可以獲取與銀行服務(wù)相關(guān)的業(yè)務(wù)知識(shí),例如,提供增值服務(wù)的銀行客戶經(jīng)理,希望明確客戶有更多的業(yè)務(wù)需求,而風(fēng)險(xiǎn)管理的業(yè)務(wù)人員可以及早發(fā)現(xiàn)貸款的潛在損失。
1.2?國(guó)內(nèi)外發(fā)展現(xiàn)狀
21世紀(jì)大數(shù)據(jù)信息和互聯(lián)網(wǎng)金融得到了前所未有的巨大發(fā)展,個(gè)人消費(fèi)經(jīng)濟(jì)市場(chǎng)空間也得到了拓展,與此同時(shí),人們提前消費(fèi)經(jīng)濟(jì)觀念的轉(zhuǎn)變導(dǎo)致全球個(gè)人信貸規(guī)模急劇擴(kuò)大,我國(guó)的一些大城市居民債務(wù)比率已經(jīng)達(dá)到甚至超過美國(guó)等發(fā)達(dá)國(guó)家的平均水平,為有效應(yīng)對(duì)這一趨勢(shì)的發(fā)展,我國(guó)已經(jīng)采取措施對(duì)商業(yè)銀行加強(qiáng)信用風(fēng)險(xiǎn)管理,并改進(jìn)管理技術(shù)。截至2006年底我國(guó)已經(jīng)全面實(shí)現(xiàn)了金融業(yè)對(duì)外開放,面對(duì)全球的激烈競(jìng)爭(zhēng),我國(guó)若想要保住全球的經(jīng)濟(jì)地位并使之發(fā)揚(yáng)壯大,需要自身依靠?jī)?nèi)部評(píng)級(jí)體系的建設(shè)和發(fā)展。然而近幾年,我國(guó)涌現(xiàn)出了很多研究數(shù)據(jù)科學(xué)的高端人才,對(duì)于模型的建立和探索已經(jīng)在國(guó)內(nèi)外取得了不小的成就,在未來(lái)的數(shù)據(jù)科學(xué)以及商業(yè)應(yīng)用中,預(yù)測(cè)模型也會(huì)應(yīng)用到我們生活中的方方面面,并且會(huì)得到空前的發(fā)展和巨大的進(jìn)步。
1.3?本論文的創(chuàng)新點(diǎn)
相較于傳統(tǒng)模型而言,本文采用了機(jī)器學(xué)習(xí)中的邏輯回歸模型(logistic regression),該模型是基于現(xiàn)階段國(guó)內(nèi)外發(fā)展?fàn)顩r和項(xiàng)目背景以及相關(guān)業(yè)務(wù)場(chǎng)景的探索研究,該模型屬于概率型非線性回歸模型,它是研究二分類觀察結(jié)果(被解釋變量)與一些影響因素(解釋變量)之間關(guān)系的一種多變量分析方法。如果用線性回歸分析,由于應(yīng)變量Y是一個(gè)二值變量(通常取值1或0),不滿足應(yīng)用條件,尤其當(dāng)各因素都處于低水平或高水平時(shí),預(yù)測(cè)值Y值可能超出0~1范圍,出現(xiàn)不合理都現(xiàn)象。用logistic回歸分析則可以較好的解決上述問題。
2?相關(guān)技術(shù)介紹
數(shù)據(jù)科學(xué)是一個(gè)發(fā)現(xiàn)和解釋數(shù)據(jù)中的模式,并用于解決問題的過程。
2.1?數(shù)據(jù)科學(xué)過程
數(shù)據(jù)科學(xué)中的過程,主要分為以下幾個(gè)步驟:相關(guān)數(shù)據(jù)和主題結(jié)合生成信息,信息通過規(guī)則的加工生成知識(shí),知識(shí)通過業(yè)務(wù)經(jīng)驗(yàn)的豐富生成相關(guān)管理人員的決策和行動(dòng),這些步驟在業(yè)務(wù)場(chǎng)景中的流程如圖1所示。
2.2?模型的實(shí)際應(yīng)用過程
分析建模人員通過分析數(shù)據(jù)建立模型,在該過程中主要是找出隱藏在數(shù)據(jù)背后的模式,這些模式能把數(shù)據(jù)轉(zhuǎn)化為知識(shí),而這些已發(fā)現(xiàn)的知識(shí)就是我們所謂的模型,業(yè)務(wù)人員把模型用在實(shí)際數(shù)據(jù)上,從而預(yù)測(cè)未來(lái)的行為,在這個(gè)過程中主要是部署,即應(yīng)用已發(fā)現(xiàn)的知識(shí)達(dá)成實(shí)用的目的。
2.3?數(shù)據(jù)科學(xué)實(shí)施路線圖
在數(shù)據(jù)科學(xué)中,數(shù)據(jù)挖掘的實(shí)施路線圖貫穿整個(gè)數(shù)據(jù)建過程中,如圖2所示為數(shù)據(jù)科學(xué)實(shí)施路線圖。
3?個(gè)人貸款違約預(yù)測(cè)模型的創(chuàng)新點(diǎn)介紹
個(gè)人貸款違約預(yù)測(cè)模型的建立包括:業(yè)務(wù)理解、數(shù)據(jù)獲取、數(shù)據(jù)清洗與處理、數(shù)據(jù)建模等過程,每個(gè)過程的創(chuàng)新點(diǎn)在后面會(huì)展開討論。
3.1?業(yè)務(wù)理解
業(yè)務(wù)理解是數(shù)據(jù)建模中關(guān)鍵的環(huán)節(jié),若業(yè)務(wù)理解不到位則直接關(guān)系到業(yè)務(wù)目標(biāo)的偏離,從而導(dǎo)致最后的模型預(yù)測(cè)不準(zhǔn)確,不僅浪費(fèi)較長(zhǎng)的時(shí)間人力成本,而且會(huì)對(duì)公司的經(jīng)營(yíng)狀況造成巨大的損失,因此好的業(yè)務(wù)理解對(duì)數(shù)據(jù)建模起到關(guān)鍵性的作用。
本文涉及的數(shù)據(jù)業(yè)務(wù)是在銀行場(chǎng)景下進(jìn)行個(gè)人客戶業(yè)務(wù)分析和數(shù)據(jù)挖掘進(jìn)行的,筆者希望明確哪些客戶有更多的業(yè)務(wù)需求,而風(fēng)險(xiǎn)管理的業(yè)務(wù)人員可以及早發(fā)現(xiàn)貸款的潛在損失,那么根據(jù)客戶的貸款屬性、交易信息、狀態(tài)信息怎樣預(yù)測(cè)客戶的貸款違約行為呢?這是本文需要重點(diǎn)探索的問題。
而拆分這些數(shù)據(jù)的指標(biāo),我們可以分為三大類:屬性、狀態(tài)、行為信息,而這三大類指標(biāo)對(duì)建模的特征變量的篩選有重要的指導(dǎo)意義。整理這些變量通常會(huì)與兩個(gè)指標(biāo)變量息息相關(guān)-還款意愿和還款能力指標(biāo),而在貸款審批前業(yè)務(wù)人員會(huì)重點(diǎn)關(guān)注其還款意愿情況,若客戶得到的收益高于成本,則客戶的還款意愿不足,從而導(dǎo)致違約;在貸款后業(yè)務(wù)人員會(huì)關(guān)注客戶還款能力情況,若客戶的經(jīng)濟(jì)條件惡化,從而導(dǎo)致違約,而還款能力不足包括欲望大于能力,生活狀態(tài)不穩(wěn)定等情況。而描述這些還款指標(biāo)的變量基本都是衍生變量,而這些衍生變量分為:
一級(jí)衍生變量,比如資產(chǎn)余額;二級(jí)衍生變量,比如資產(chǎn)余額的波動(dòng)率、平均資產(chǎn)余額;三級(jí)衍生變量,比如資產(chǎn)余額的變異系數(shù)等。因此在接下來(lái)的章節(jié)中將詳細(xì)闡述這些變量提取的過程。
3.2?數(shù)據(jù)獲取
本案例的數(shù)據(jù)來(lái)自一家銀行的真實(shí)客戶與交易數(shù)據(jù),設(shè)計(jì)客戶主記錄、賬號(hào)、交易、業(yè)務(wù)和信用卡、地區(qū)等數(shù)據(jù),下面分別介紹這幾張數(shù)據(jù)庫(kù)表的重要字段。
貸款表(Loans):該表記錄每個(gè)賬戶上的一條貸款信息,包括以下字段:權(quán)限號(hào)(disp_id)、貸款號(hào)(loan_id)、賬戶號(hào)(accout_id)、發(fā)放貸款日期(date)、貸款金額(amount)、貸款期限(duration)、每月歸還額(payments)、還款狀態(tài)(status)。其中還款狀態(tài)A代表合同終止,沒問題;B代表合同終止,貸款沒有支付;C代表合同處于執(zhí)行期,至今正常;D代表合同處于執(zhí)行期,欠債狀態(tài)。
賬戶表(Account):該表記錄賬戶相關(guān)信息,包括以下字段:賬戶號(hào)(account_id)、開戶分行地區(qū)號(hào)(district_id)、開戶日期(date)、結(jié)算頻度(frequency)。
客戶信息表(Clients):該表記錄客戶的基礎(chǔ)屬性相關(guān)信息,包括以下字段:客戶號(hào)(client_id)、性別(sex)、出身日期(birth_date)、地區(qū)號(hào)(district_id)。
權(quán)限分配表(Disp):該表每條記錄描述了客戶和賬戶之間的關(guān)系,以及客戶操作賬戶的權(quán)限,包括以下字段:權(quán)限設(shè)置號(hào)(disp_id)、客戶號(hào)(client_id)、賬戶號(hào)(account_id)、權(quán)限類型(type)。其中權(quán)限類型字段中只有“所有者”身份可以進(jìn)行增殖業(yè)務(wù)操作和貸款。
支付命令表(Orders):該表每條記錄描述了一個(gè)支付命令,包括以下字段:訂單號(hào)(order_id)、發(fā)起訂單的賬單號(hào)(account_id)、收款銀行(bank_to)、收款客戶號(hào)(account_to)、欠款金額(amount)等。
交易表(Trans):該表每條記錄代表每個(gè)賬戶上的一條記錄,包括以下字段:交易序號(hào)(trans_id)、發(fā)起交易的賬戶號(hào)(account_id)、交易日期(date)、借貸類型(type)、交易類型(operation)、欠款金額(amount)、賬戶余額(balance)等。
信用卡表(Cards):該表每條記錄描述了一個(gè)賬戶上的信用卡信息,包括以下字段:信用卡ID(card_id)、賬戶權(quán)限號(hào)(disp_id)、卡類型(type)、issued(發(fā)卡信息)。
人口地區(qū)統(tǒng)計(jì)表(District):該表記錄描述了一個(gè)地區(qū)的人口統(tǒng)計(jì)學(xué)信息,包括以下字段:地區(qū)號(hào)(A1)、GDP總量(GDP)等。
其中各表與表之間的聯(lián)系即E-R圖如圖3所示。
3.3?數(shù)據(jù)清洗與處理
數(shù)據(jù)清洗與處理是數(shù)據(jù)建模中重要環(huán)節(jié),如果源數(shù)據(jù)不經(jīng)過處理以及處理不夠精確,則會(huì)直接影響模型的預(yù)測(cè)準(zhǔn)確度。本小節(jié)主要介紹該案例背后的數(shù)據(jù)處理的相關(guān)過程以及代碼實(shí)現(xiàn)的小細(xì)節(jié)。
(1)首先需要對(duì)貸款違約預(yù)測(cè)模型的被解釋變量Y值定義違約和非違約的狀態(tài),通過數(shù)據(jù)獲取章節(jié)中的貸款表可知,狀態(tài)為B和D為違約狀態(tài),C為未知狀態(tài),D為正常狀態(tài),因此對(duì)貸款表新增解釋變量Y值字段bad_good,實(shí)現(xiàn)的相關(guān)代碼如下:
Loans[‘bad_good]?= loans.status.map({"B":1,"D":1,"C":0,"A":2})
(2)由于貸款信息需要知道詳細(xì)貸款人的基礎(chǔ)屬性信息,因此需要將loans表和用戶clients表進(jìn)行連接,但是中間需要權(quán)限表disp表建立中間橋梁進(jìn)行連接,并且只有權(quán)限為“所有者”的用戶才能操作所有相關(guān)的表:
df = pd.merge(loans,disp,on="account_id",how="left")
df = pd.merge(df,clients,on="client_id",how="left")
df = df[df.type==”所有者”]
(3)由于對(duì)取數(shù)的時(shí)間有要求,因此需要對(duì)現(xiàn)有的時(shí)間格式進(jìn)行轉(zhuǎn)換,方便后續(xù)計(jì)算:
df2["date"]?= pd.to_datetime(df2["date"])
df2["date_trans"]?= pd.to_datetime(df2["date_trans"])
(4)對(duì)于動(dòng)態(tài)數(shù)據(jù),其觀察期的取數(shù)窗口的規(guī)則是交易日期在貸款日期之前,并且交易日期在貸款日期前一年的時(shí)間內(nèi):
import datetime
df3=df2[df2.date-datetime.timedelta(days=365) [df2.date_trans (5)由于賬戶余額和貸款金額為無(wú)法正確計(jì)算的字符串,需要對(duì)字符串進(jìn)行清洗處理得到數(shù)值形式,對(duì)于每個(gè)賬戶的交易類型,有兩種情況,‘借代表支出,‘貸代表收入,需要將收入和支出標(biāo)準(zhǔn)化,方便后續(xù)計(jì)算: df2["amount1"]=df2["amount"].map(lambdax:int("".join(x[1:].split(",")))) df2["balance1"]=df2["balance"].map(lambdax:int("".join(x[1:].split(",")))) 3.4?數(shù)據(jù)建模 數(shù)據(jù)建模是模型建立的最后一個(gè)環(huán)節(jié),該過程包括數(shù)據(jù)特征變量的篩選和模型的選取。 3.4.1?特征變量的選取 (1)賬戶余額的變異系數(shù):賬戶的平均余額/賬戶的標(biāo)準(zhǔn)差。 df4=df3.groupby("account_id")["balance1"].agg(["mean","std"]) .reset_index() df4["cv_balance"]?= df4.apply(lambda x:x[2]/x[1],axis=1) (2)賬戶的平均收入和平均支出: df5=df3.groupby(["account_id","type1"]).balance1.sum().unstack() .reset_index().fillna(0) df5["r_out_in"]?= df5.apply(lambda x:x[2]/x[1],axis=1) (3)貸存比和貸收比:貸存比=貸款總額/平均余額、貸收比=貸款總額/總收入 df6 = pd.merge(df1,df4,on="account_id",how="left") df7 = pd.merge(df6,df5,on="account_id",how="left") df7["r_lb"]?= df7[["amount","avg_balance"]].apply(lambdax: x[0]/x[1],axis=1) df7["r_lincome"]?= df7[["amount","income"]].apply(lambdax: x[0]/x[1],axis=1) 3.4.2?模型的選取 由于被解釋變量是二分類變量,因此模型選取該業(yè)務(wù)場(chǎng)景下常用的模型-邏輯回歸模型(Logit Regression)。而用于預(yù)測(cè)模型的訓(xùn)練集和測(cè)試集都是從貸款表中的狀態(tài)類型進(jìn)行篩選的,其中訓(xùn)練集和測(cè)試集從狀態(tài)為C的情況下選取的,訓(xùn)練集隨機(jī)選取幾何的07,測(cè)試集為0.3。使用了邏輯回歸的向前逐步法模型直接調(diào)用邏輯回歸的函數(shù),代碼如下所示: fpr,tpr,th = metrics.roc_curve(test.bad_good,lg_m1.predict(test)) plt.figure(figsize=[6,6]) plt.plot(fpr,tpr,'b--') plt.title('ROC curve') plt.show() print('AUC = %.4f' %metrics.auc(fpr,tpr)) for_predict['prob']=lg_m1.predict(for_predict) for_predict[['account_id','prob']].head() 最后生成的是ROC曲線,求得的AUC為0.8780。曲線如圖4所示。 4?總結(jié) 本論文通過對(duì)案例的數(shù)據(jù)進(jìn)行一系列的分析和挖掘得到比較精準(zhǔn)的模型,并且已在實(shí)際的業(yè)務(wù)場(chǎng)景中進(jìn)行了測(cè)試和監(jiān)控,最后的反饋結(jié)果都得到了非常不錯(cuò)的效果,在未來(lái)的日子里,筆者也會(huì)繼續(xù)探索相關(guān)的機(jī)器學(xué)習(xí)模型,例如決策樹、組合算法等模型,通過這些模型的比較看能否得到更符合業(yè)務(wù)場(chǎng)景并且相對(duì)精準(zhǔn)的模型。 參考文獻(xiàn) [1]舒揚(yáng),楊秋怡.基于大樣本數(shù)據(jù)模型的汽車貸款違約預(yù)測(cè)研究[J].管理評(píng)論,2017,29(09):59-71. [2]王粟旸.商業(yè)銀行小微企業(yè)違約風(fēng)險(xiǎn)管控及違約概率估計(jì)模型研究[D].南京:南京大學(xué),2014. [3]章寧,陳欽.基于TF-IDF算法的P2P貸款違約預(yù)測(cè)模型[J].計(jì)算機(jī)應(yīng)用,2018,38(10):3042-3047. [4]朱偉義,喬琳霏.基于多維特征邏輯回歸識(shí)別模型的排隊(duì)監(jiān)測(cè)方法[J].電氣自動(dòng)化,2018,40(06):94-97. [5]李佳,黃之豪.銀行信用風(fēng)險(xiǎn)預(yù)測(cè)——基于SVM和BP神經(jīng)網(wǎng)絡(luò)的比較研究[J].上海立信會(huì)計(jì)金融學(xué)院學(xué)報(bào),2018,(06):40-48. [6]姚蘭蘭.淺析商業(yè)銀行信用風(fēng)險(xiǎn)管理存在的問題與對(duì)策[J].現(xiàn)代商業(yè),2018,(31):84-85. [7]金美子.我國(guó)商業(yè)銀行信用風(fēng)險(xiǎn)管理存在的問題及監(jiān)管對(duì)策[J].現(xiàn)代商業(yè),2018,(28):73-74.