版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
07銀行客戶流失預(yù)警分析主要內(nèi)容主要目標(biāo)與問題分解7.1相關(guān)知識與理論基礎(chǔ)7.2業(yè)務(wù)需求分析7.3數(shù)據(jù)理解7.4數(shù)據(jù)探索與分析7.5生成客戶交易行為數(shù)據(jù)7.6構(gòu)建客戶流失風(fēng)險模型7.7模型的應(yīng)用部署7.8本章主要介紹銀行客戶流失及其建模分析的相關(guān)知識及理論,根據(jù)客戶的基本信息與基金交易記錄構(gòu)建客戶流失風(fēng)險指標(biāo)體系,建立客戶流失風(fēng)險預(yù)警模型,進(jìn)行模型的應(yīng)用部署。銀行可以根據(jù)預(yù)警模型提供的潛在流失客戶名單,及時指派客戶經(jīng)理有針對性地挽留潛在的流失客戶。銀行客戶流失預(yù)警分析第七章銀行客戶流失預(yù)警分析7.1.1主要目標(biāo)通過分析銀行客戶的個人基本信息以及過去一段時間內(nèi)的交易明細(xì),構(gòu)建客戶流失風(fēng)險體系,根據(jù)客戶流失風(fēng)險體系建立客戶流失風(fēng)險預(yù)警模型,通過對構(gòu)建的模型進(jìn)行評估與分析,預(yù)測客戶是否可能流失。7.1主要目標(biāo)與問題分解第七章銀行客戶流失預(yù)警分析1業(yè)務(wù)理解7.1.2問題分解2數(shù)據(jù)預(yù)處理5模型的應(yīng)用部署3選取和構(gòu)建客戶流失風(fēng)險指標(biāo)4客戶流失風(fēng)險預(yù)警模型建立、預(yù)測及評價第七章銀行客戶流失預(yù)警分析7.2.1銀行客戶流失方式銀行客戶流失的方式有兩種:1.客戶自然流失2.客戶轉(zhuǎn)移流失7.2.2銀行客戶流失因素分析引起商業(yè)銀行客戶流失的原因有很多,主要可以分為內(nèi)部環(huán)境因素和外部環(huán)境因素兩種。7.2相關(guān)知識與理論基礎(chǔ)第七章銀行客戶流失預(yù)警分析7.2.3流失客戶行為分析1流失客戶最近一次購買金融產(chǎn)品和上一次購買金融產(chǎn)品的時間間隔較長,最近一次賣出金融產(chǎn)品和上一次賣出金融產(chǎn)品的時間間隔較短。23流失客戶近期購買金融產(chǎn)品的總次數(shù)或總金額較少,賣出金融產(chǎn)品的總次數(shù)或總金額較多。流失客戶近期購買或賣出金融產(chǎn)品的總次數(shù)或總金額與過去同期相比存在明顯變化。流失客戶與非流失客戶相比存在以下顯著區(qū)別第七章銀行客戶流失預(yù)警分析潛在的流失客戶是指正在逐漸出清之前購買的金融產(chǎn)品,但目前還未完成所有交易,尚有挽回空間的客戶。也就是說,我們假設(shè)客戶流失前,客戶將會逐步清空已經(jīng)開通的銀行業(yè)務(wù),轉(zhuǎn)移資產(chǎn)到其他銀行,最終在某個業(yè)務(wù)或本銀行體系中完全流失。7.3業(yè)務(wù)需求分析第七章銀行客戶流失預(yù)警分析7.4數(shù)據(jù)理解為了識別哪些客戶是潛在的可能流失的客戶,需要從銀行歷史積累的業(yè)務(wù)數(shù)據(jù)中,分析和研究客戶的基本信息、業(yè)務(wù)交易等特征,區(qū)分出既往已流失客戶的特征,用全面數(shù)據(jù)描述刻畫客戶的業(yè)務(wù)特點。銀行開展的業(yè)務(wù)雖然多種多樣,這些業(yè)務(wù)都可以簡單地理解為給客戶提供金融產(chǎn)品的進(jìn)銷存服務(wù),都可以利用相同的RFM理論劃分為不同的交易行為層次,從而能輕松識別哪些客戶是高端客戶,哪些客戶正在降低金融產(chǎn)品的交易頻度,哪些客戶可能有流失的風(fēng)險。第七章銀行客戶流失預(yù)警分析案例以銀行業(yè)務(wù)中的基金銷售業(yè)務(wù)為例,以RFM理論為指導(dǎo),從基金交易流水中提取流失特征變量,構(gòu)建基金客戶流失預(yù)警模型。本例整合了客戶基本信息和基金交易持倉信息,這些給定的數(shù)據(jù)是根據(jù)原始數(shù)據(jù)已經(jīng)脫敏處理后的數(shù)據(jù)??蛻粜畔⒈硖卣黝愋秃xCUSTNOIDString客戶編號(關(guān)聯(lián)字段)CUSTTYPEString客戶類型1:個人、0:機構(gòu)ZIPCODEString郵編SEXString性別0:男、1:女BIRTHDAYString出生日期LOSSLABELString客戶流失標(biāo)簽
1:流失、0:保有基金交易持倉信息表特征類型含義DATETime交易日期BUSINFLAGString交易類型CUSTNOIDString客戶編號(關(guān)聯(lián)字段)CUSTTYPEString客戶類型:1:個人0:機構(gòu)FUNDCODEString基金代碼AGENCYNOString渠道NETNOString網(wǎng)點OCCURSHARESNumeric交易份額:正值為買入,負(fù)值為賣出,0可忽略LASTSHARESNumeric持倉份額第七章銀行客戶流失預(yù)警分析本節(jié)的主要目的是對原始數(shù)據(jù)進(jìn)行探索分析和初步預(yù)處理。首先,讀取客戶數(shù)據(jù)集,引入pandas和numpy包,調(diào)用pandas的read_csv()方法讀入csv數(shù)據(jù),參數(shù)填寫數(shù)據(jù)的路徑。讀入客戶信息數(shù)據(jù)CUSTOMER.csv與客戶交易數(shù)據(jù)SHARES.csv7.5數(shù)據(jù)探索與分析python代碼:importpandasaspdimportnumpyasnpcustomer_df=pd.read_csv('CUSTOMER.csv')shares_df=pd.read_csv('SHARES.csv')第七章銀行客戶流失預(yù)警分析7.5.1客戶數(shù)據(jù)的描述性統(tǒng)計python代碼:customer_df.describe(include='all')shares_df.describe(include='all')交易持倉信息表的數(shù)據(jù)集統(tǒng)計信息第七章銀行客戶流失預(yù)警分析7.5.1客戶數(shù)據(jù)的描述性統(tǒng)計python代碼:customer_df.describe(include='all')shares_df.describe(include='all')客戶交易表的數(shù)據(jù)集統(tǒng)計信息第七章銀行客戶流失預(yù)警分析通過分析客戶數(shù)據(jù)的統(tǒng)計信息可以判斷,統(tǒng)計信息中某些變量的count數(shù)值小于其他列,即這些變量存在缺失值,從圖7-2所示結(jié)果可以看出,變量SEX、BIRTHDAY、ZIPCODE存在空值。7.5.2客戶數(shù)據(jù)缺失值填充python代碼:customer_df['SEX'].fillna(value=0,inplace=True)customer_df.to_csv('customer1.csv',index=False)customer_df=pd.read_csv('customer1.csv')customer_df.describe(include='all')第七章銀行客戶流失預(yù)警分析填充后再次查看數(shù)據(jù)集統(tǒng)計信息,可以發(fā)現(xiàn)SEX列的缺失值已經(jīng)全部填充完畢(SEX列,count=1000),填充后的數(shù)據(jù)集統(tǒng)計信息如圖7-3所示。7.5.2客戶數(shù)據(jù)缺失值填充圖
7-3缺失值填充后的數(shù)據(jù)集統(tǒng)計信息第七章銀行客戶流失預(yù)警分析7.5.3客戶數(shù)據(jù)異常值過濾python代碼:customer_df=customer_df[customer_df['SEX'].isin(['0','1'])]customer_df.describe(include='all')過濾異常數(shù)據(jù)后的數(shù)據(jù)集統(tǒng)計信息第七章銀行客戶流失預(yù)警分析Numpy包的unique()方法可查看數(shù)據(jù)集中某一列的取值,參數(shù)return_counts代表是否返回各個取值的數(shù)據(jù)條數(shù)。7.5.4觀察數(shù)據(jù)集是否均衡python代碼:np.unique(customer_df['LOSSLABEL'],return_counts=True)查詢返回LOSSLABEL列的取值和各個取值的數(shù)據(jù)條數(shù),結(jié)果如圖所示。第七章銀行客戶流失預(yù)警分析SHARES.csv數(shù)據(jù)文件提供了基金客戶在2013年5月到2013年10月間的交易記錄?;谥暗臉I(yè)務(wù)分析,本例將這一時間段分為5-6月、7-8月、9-10月三個時期,構(gòu)建客戶在每一期的買入次數(shù)、買入金額、賣出次數(shù)、賣出金額、持倉份額,以及本期與前一期的買入次數(shù)變化、買入金額變化、賣出次數(shù)變化、賣出金額變化、期末持倉份額變化,將這些反映客戶交易行為和交易特征的數(shù)據(jù)提取出來,分析流失客戶的交易行為特征,為預(yù)警模型的建立提供支持。7.6生成客戶交易行為數(shù)據(jù)第七章銀行客戶流失預(yù)警分析客戶交易行為變量主要指客戶在不同時間段內(nèi)的買入次數(shù)、賣出次數(shù)、買入金額、賣出金額以及持倉份額。為方便根據(jù)交易時間對交易數(shù)據(jù)進(jìn)行過濾,將DATE列設(shè)置為時間類型,并將該列作為dataframe的索引。7.6.1生成客戶交易行為數(shù)據(jù)python代碼:shares_df['DATE']=pd.to_datetime(shares_df['DATE'])shares_df=shares_df.set_index('DATE')為了計算一段時期內(nèi)客戶的買入次數(shù)、賣出次數(shù)、買入金額、賣出金額,我們定義了四個變量。python代碼:defbuy_count(x):returnnp.sum(1ifi>0else0foriinx)defbuy_sum(x):returnnp.sum(iifi>0else0foriinx)defsale_count(x):returnnp.sum(1ifi<0else0foriinx)defsale_sum(x):returnnp.sum(-iifi<0else0foriinx)第七章銀行客戶流失預(yù)警分析1客戶5-6月的交易行為數(shù)據(jù)23客戶7-8月的交易行為數(shù)據(jù)客戶9-10月的交易行為數(shù)據(jù)下面,我們分別生成5-6月、7-8月、9-10月三個時間段的客戶交易行為數(shù)據(jù),分析客戶交易行為。第七章銀行客戶流失預(yù)警分析1.客戶5-6月的交易行為數(shù)據(jù)python代碼:shares_df_5_6=shares_df['2013-5':'2013-6'].groupby('CUSTNOID').agg({'OCCURSHARES':[buy_count,buy_sum,sale_count,sale_sum]}).OCCURSHARESshares_df_5_6['CUSTNOID']=shares_df_5_6.indexshares_df_5_6.rename(columns={'buy_count':'五六月買入次數(shù)','buy_sum':'五六月買入金額','sale_count':'五六月賣出次數(shù)','sale_sum':'五六月賣出金額'},inplace=True)shares_df_5_6['6月末持倉份額']=shares_df_5_6['五六月買入金額']-shares_df_5_6['五六月賣出金額']shares_df_5_6.describe(include='all')5-6月的客戶交易特征數(shù)據(jù)第七章銀行客戶流失預(yù)警分析1.客戶7-8月的交易行為數(shù)據(jù)python代碼:shares_df_7_8=shares_df['2013-7':'2013-8'].groupby('CUSTNOID').agg({'OCCURSHARES':[buy_count,buy_sum,sale_count,sale_sum]}).OCCURSHARESshares_df_7_8['CUSTNOID']=shares_df_7_8.indexshares_df_7_8.rename(columns={'buy_count':'七八月買入次數(shù)','buy_sum':'七八月買入金額','sale_count':'七八月賣出次數(shù)','sale_sum':'七八月賣出金額'},inplace=True)shares_df_7_8['8月末持倉份額']=shares_df_7_8['七八月買入金額']-shares_df_7_8['七八月賣出金額']shares_df_7_8.describe(include='all')7-8月的客戶交易特征數(shù)據(jù)第七章銀行客戶流失預(yù)警分析1.客戶9-10月的交易行為數(shù)據(jù)python代碼:shares_df_9_10=shares_df['2013-9':'2013-10'].groupby('CUSTNOID').agg({'OCCURSHARES':[buy_count,buy_sum,sale_count,sale_sum]}).OCCURSHARESshares_df_9_10['CUSTNOID']=shares_df_9_10.indexshares_df_9_10.rename(columns={'buy_count':'九十月買入次數(shù)','buy_sum':'九十月買入金額','sale_count':'九十月賣出次數(shù)','sale_sum':'九十月賣出金額'},inplace=True)shares_df_9_10['10月末持倉份額']=shares_df_9_10['九十月買入金額']-shares_df_9_10['九十月賣出金額']shares_df_9_10.describe(include='all')9-10月的客戶交易特征數(shù)據(jù)第七章銀行客戶流失預(yù)警分析1過濾變量7.6.2客戶交易數(shù)據(jù)整合23表聯(lián)接操作缺失值填充python代碼:df=pd.DataFrame(customer_df,columns=['CUSTNOID','CUSTTYPE','SEX','LOSSLABEL'])df=pd.merge(df,shares_df_5_6,on='CUSTNOID',how='left')df=pd.merge(df,shares_df_7_8,on='CUSTNOID',how='left')df=pd.merge(df,shares_df_9_10,on='CUSTNOID',how='left')df=df.fillna(value=0)df.describe(include='all')第七章銀行客戶流失預(yù)警分析7.6.3生成客戶交易行為隨時間變化數(shù)據(jù)python代碼:df['第一二期買入次數(shù)變化']=df['七八月買入次數(shù)']-df['五六月買入次數(shù)']df['第一二期買入金額變化']=df['七八月買入金額']-df['五六月買入金額']df['第一二期賣出次數(shù)變化']=df['七八月賣出次數(shù)']-df['五六月賣出次數(shù)']df['第一二期賣出金額變化']=df['七八月賣出金額']-df['五六月賣出金額']df['第一二期期末持倉份額變化']=df['8月末持倉份額']-df['6月末持倉份額']df.describe(include='all')7-107-8月與5-6月期間客戶交易變動特征第七章銀行客戶流失預(yù)警分析7.6.4客戶交易行為特征匯總表變量名稱變量含義CUSTNOID客戶編號CUSTTYPE客戶類型1:個人、0:機構(gòu)SEX性別1:男、0:女第一期間內(nèi)買入次數(shù)5-6月內(nèi)交易頻次第一期間內(nèi)買入金額5-6月內(nèi)交易額度第一期間內(nèi)賣出次數(shù)5-6月內(nèi)交易頻次第一期間內(nèi)賣出金額5-6月內(nèi)交易額度第一期間末持倉份額6月末持倉份額第二期間內(nèi)買入次數(shù)7-8月內(nèi)交易頻次第二期間內(nèi)買入金額7-8月內(nèi)交易額度第二期間內(nèi)賣出次數(shù)7-8月內(nèi)交易頻次第二期間內(nèi)賣出金額7-8月內(nèi)交易額度第二期間末持倉份額8月末持倉份額第三期間內(nèi)買入次數(shù)9-10月內(nèi)交易頻次第三期間內(nèi)買入金額9-10月內(nèi)交易額度第三期間內(nèi)賣出次數(shù)9-10月內(nèi)交易頻次第三期間內(nèi)賣出金額9-10月內(nèi)交易額度第三期間內(nèi)末持倉份額10月末持倉份額第一二期買入次數(shù)變化第一二期買入金額變化第二期間內(nèi)買入金額減去第一期間內(nèi)買入金額第一二期賣出次數(shù)變化第二期間內(nèi)賣出次數(shù)減去第一期間內(nèi)賣出次數(shù)第一二期賣出金額變化第二期間內(nèi)賣出金額減去第一期間內(nèi)賣出金額第一二期期末持倉份額變化第二期間內(nèi)期末持倉份額減去第一期間內(nèi)期末持倉份額第二三期買入次數(shù)變化第三期間內(nèi)買入次數(shù)減去第二期間內(nèi)買入次數(shù)第二三期買入金額變化第三期間內(nèi)買入金額減去第二期間內(nèi)買入金額第二三期賣出次數(shù)變化第三期間內(nèi)賣出次數(shù)減去第二期間內(nèi)賣出次數(shù)第二三期賣出金額變化第三期間內(nèi)賣出金額減去第二期間內(nèi)賣出金額第二三期期末持倉份額變化第三期間內(nèi)期末持倉份額減去第二期間內(nèi)期末持倉份額客戶流失標(biāo)簽1:流失;0:保有注:這里以2013年5月到2013年10月間的交易記錄為例,將每兩個月作為一個觀測周期,分析客戶的交易行為變化。實際應(yīng)用中以每兩個月進(jìn)行滾動循環(huán)統(tǒng)計,以便動態(tài)分析數(shù)據(jù),隨時跟蹤客戶交易行為的變化。第七章銀行客戶流失預(yù)警分析調(diào)用dataframe的sample()方法,參數(shù)frac=1.0,代表只打亂數(shù)據(jù)集的順序,目的是使數(shù)據(jù)隨機化,避免過度擬合,使預(yù)測結(jié)果更加準(zhǔn)確。12347.7構(gòu)建客戶流失風(fēng)險模型7.7.1訓(xùn)練集與驗證集劃分對于訓(xùn)練集和測試集,分別提取數(shù)據(jù)集中的LOSSLABEL列的數(shù)值作為建模標(biāo)簽Y,去除數(shù)據(jù)集中標(biāo)簽列(LOSSLABEL)與編號列(CUSTNOID),提取其他所有列的數(shù)值作為建模特征。最終得到訓(xùn)練集特征X_train,驗證集特征X_test,訓(xùn)練集標(biāo)簽Y_train,驗證集標(biāo)簽Y_test。調(diào)用dataframe的loc方法對數(shù)據(jù)進(jìn)行切片處理,三分之二的數(shù)據(jù)作為訓(xùn)練集,三分之一的數(shù)據(jù)作為測試集。python代碼:df=df.sample(frac=1.0)df_train=df.loc[:int(0.66*df.shape[0])]df_test=df.loc[int(0.66*df.shape[0]):]X_train=df_train.drop(columns=['CUSTNOID','LOSSLABEL']).valuesX_test=df_test.drop(columns=['CUSTNOID','LOSSLABEL']).valuesY_train=df_train['LOSSLABEL'].valuesY_test=df_test['LOSSLABEL'].values第七章銀行客戶流失預(yù)警分析本例是一個二分類問題,可以調(diào)用sklearn.linear_model包中的LogisticRegression類建立邏輯回歸模型。1邏輯回歸模型構(gòu)建的操作步驟:7.7.1訓(xùn)練集與驗證集劃分調(diào)用LogisticRegression的fit()方法進(jìn)行模型訓(xùn)練;2調(diào)用LogisticRegression的predict()方法對驗證集進(jìn)行預(yù)測,得到預(yù)測結(jié)果prediction_lr。3python代碼:fromsklearn.linear_modelimportLogisticRegressionlr=LogisticRegression()lr.fit(X_train,Y_train)prediction_lr=lr.predict(X_test)第七章銀行客戶流失預(yù)警分析使用真值Y_test對預(yù)測結(jié)果prediction_lr進(jìn)行評估,評估指標(biāo)包含在sklearn.metrics包中。1邏輯回歸模型驗證操作步驟::7.7.1訓(xùn)練集與驗證集劃分因為本例預(yù)測客戶流失問題,所以應(yīng)關(guān)注流失標(biāo)簽為1的這類數(shù)據(jù)的預(yù)測情況,所以在f1_score()、recall_score()、precision_score()中填寫參數(shù)pos_label=1.0,只針對這一類計算評價指標(biāo)。
2計算混淆矩陣。3繪制pr和roc曲線。4調(diào)用sklearn.metrics包的precision_recall_curve()方法和roc_curve()方法,得到繪圖數(shù)據(jù),調(diào)用matplotlib.pyplot包中的plot()方法繪制圖表。5第七章銀行客戶流失預(yù)警分析1如果訓(xùn)練集大小為N,對于每棵樹而言,隨機且有放回地從訓(xùn)練集中的抽取N個訓(xùn)練樣本,作為該樹的訓(xùn)練集。23如果每個樣本的特征維度為M,指定一個常數(shù)m<<M,隨機地從M個特征中選取m個特征子集,每次樹進(jìn)行分裂時,從這m個特征中選擇最優(yōu)的每棵樹都盡最大程度的生長,并且沒有剪枝過程。每棵樹按照如下規(guī)則生成:7.7.3隨機森林模型構(gòu)建及驗證第七章銀行客戶流失預(yù)警分析1調(diào)用sklearn.ensemble包中的RandomForestClassifier類建立隨機森林模型。23調(diào)用RandomForestClassifier的fit()方法進(jìn)行模型訓(xùn)練。調(diào)用RandomForestClassifier的predict()方法對驗證集進(jìn)行預(yù)測,得到預(yù)測結(jié)果prediction_rf。操作步驟:7.7.3隨機森林模型構(gòu)建及驗證第七章銀行客戶流失預(yù)警分析python代碼:fromsklearn.ensembleimportRandomForestClassifierrf=RandomForestClassifier(n_estimators=10,max_depth=10)rf.fit(X_train,Y_train)prediction_rf=rf.predict(X_test)python代碼:prediction_proba_rf=rf.predict_proba(X_test)precision_rf,recall_rf,_=precision_recall_curve(Y_test,prediction_proba_rf[:,1])plt.plot(recall_rf,precision_rf)plt.xlabel("RecallRate")plt.ylabel("PrecisionRate")plt.show()fpr_rf,tpr_rf,_=roc_curve(Y_test,prediction_proba_rf[:,1])plt.plot(fpr_rf,tpr_rf)plt.xlabel("FalsePositiveRate")plt.ylabel("TruePositiveRate")plt.show()fromsklearn.metricsimport*metrics_rf={'accuracy':accuracy_score(prediction_rf,Y_test),'f1':f1_score(prediction_rf,Y_test,labels=1.0),'recall':recall_score(prediction_rf,Y_test,labels=1.0),'precision':precision_score(prediction_rf,Y_test,labels=1.0)}print(metrics_rf)confusion_matrix_rf=confusion_matrix(Y_test,prediction_rf,labels=labels)print(labels)print(confusion_matrix_rf)第七章銀行客戶流失預(yù)警分析隨機森林模型評價指標(biāo)(一){'accuracy':0.8181818181818182,'f1':0.7428571428571428,'recall':0.7323943661971831,'precision':0.7536231884057971}隨機森林模型評價指標(biāo)(二)隨機森林模型評價指標(biāo)(三)第七章銀行客戶流失預(yù)警分析最終將模型的預(yù)測結(jié)果與客戶編號對應(yīng),在此僅展示結(jié)果的前10行。python代碼:df_predict=pd.DataFrame(df_test,columns=['CUSTNOID'])df_predict['prediction']=prediction_rfdf_predict.head(10)模型的預(yù)測結(jié)果第七章銀行客戶流失預(yù)警分析7.8模型的應(yīng)用部署模型創(chuàng)建完成并不是項目的結(jié)束,模型的意義在于應(yīng)用,所以構(gòu)建的模型還要與實際的業(yè)務(wù)系統(tǒng)對接。在經(jīng)過嚴(yán)格的測試及驗證后,業(yè)務(wù)模型需要部署到客戶的生產(chǎn)環(huán)境,以微服務(wù)的形式提供實時的業(yè)務(wù)請求處理,預(yù)測系統(tǒng)將給出流失風(fēng)險較高的客戶名單,銀行的業(yè)務(wù)人員可以根據(jù)名單與客戶進(jìn)行溝通、進(jìn)行定制化營銷。風(fēng)險預(yù)警模型訓(xùn)練與應(yīng)用均需在生產(chǎn)環(huán)境定期執(zhí)行,以保證預(yù)警的實時性。在實際應(yīng)用中模型還需要不斷優(yōu)化。模型的應(yīng)用部署第七章銀行客戶流失預(yù)警分析08銀行卡盜刷風(fēng)險預(yù)警分析主要內(nèi)容問題概述與目標(biāo)分解8.1相關(guān)知識理論基礎(chǔ)8.2業(yè)務(wù)需求分析8.3數(shù)據(jù)理解8.4數(shù)據(jù)預(yù)處理與探索分析8.58.6信用卡盜刷識別邏輯回歸模型8.6信用卡盜刷識別決策樹模型8.7銀行卡盜刷識別模型部署8.8銀行卡盜刷是指不法分子利用高科技手段復(fù)制持卡人的銀行卡,或通過竊取持卡人的銀行卡賬戶信息,采用不法手段獲取持卡人的交易密碼,從而提取現(xiàn)金、刷卡消費或轉(zhuǎn)賬,給持卡人造成財產(chǎn)損失的一種違法行為。銀行卡盜刷風(fēng)險預(yù)警分析第八章銀行卡盜刷風(fēng)險預(yù)警分析8.1.1主要目標(biāo)以銀行信用卡客戶的交易記錄為數(shù)據(jù)源,利用專家規(guī)則分析信用卡盜刷典型行為特征,通過建立信用卡盜刷識別模型,判斷交易風(fēng)險程度,識別高風(fēng)險交易行為,通過與銀行現(xiàn)有風(fēng)險系統(tǒng)規(guī)則體系相結(jié)合,實現(xiàn)銀行信用卡盜刷風(fēng)險預(yù)警,當(dāng)出現(xiàn)危險交易行為時能夠及時提醒警示。8.1問題概述與目標(biāo)分解第八章銀行卡盜刷風(fēng)險預(yù)警分析1.業(yè)務(wù)理解2.數(shù)據(jù)處理與分析3.建立信用卡盜刷識別的模型4.建立信用卡盜刷識別的樹形模型將整個問題分解成如下幾個過程:8.1.1主要目標(biāo)第八章銀行卡盜刷風(fēng)險預(yù)警分析1.偽卡盜刷通過攝像頭、虛假密碼鍵盤等方式竊取持卡人密碼信息。盜取磁條信息和密碼后,犯罪分子制作偽卡,進(jìn)行盜刷交易。2.網(wǎng)絡(luò)支付盜刷主要通過釣魚網(wǎng)站、木馬詐騙和利用銀行網(wǎng)銀漏洞詐騙等進(jìn)行詐騙。8.2相關(guān)知識理論基礎(chǔ)8.2.1銀行卡盜刷的手段第八章銀行卡盜刷風(fēng)險預(yù)警分析常見的銀行卡盜刷行為識別方法1專家規(guī)則識別法23欺詐模式識別法異常行為識別法8.2.2銀行卡盜刷行為的識別第八章銀行卡盜刷風(fēng)險預(yù)警分析3.交易類信息1.設(shè)備類特征信息2.通道類信息8.3業(yè)務(wù)需求分析跨境盜刷行為專家規(guī)則因子主要包括三類特:第八章銀行卡盜刷風(fēng)險預(yù)警分析8.4數(shù)據(jù)理解數(shù)據(jù)字典變量名變量含義及取值ip在高風(fēng)險區(qū)域0:否1:是2:未知傳輸?shù)燃壐鶕?jù)數(shù)據(jù)傳輸加密等級取值0-6,含義如下:0:TPK1:TAK2:ZPK3:ZAK4:PVK5:CVK6:MAK卡等級根據(jù)卡級別分類,取值1-3,含義如下:1普卡2銀卡3金卡4
白金卡線上交易1:是;0:否ip與設(shè)備地址匹配1:是;0:否ip在國外1:是;0:否ip為空1:是;0:否設(shè)備編碼為空1:是;0:否ip異城市1:是;0:否設(shè)備異省0:否1:是2:未知設(shè)備異城市1:是;0:否高風(fēng)險交易標(biāo)識1:是;0:否大額交易等級取值0-35,數(shù)值越大,交易額度越大0:1元≤額度<5萬元1:5萬元≤額度<10萬元2:10萬元≤額度<20萬元3:20萬元≤額度<30萬元4:30萬元≤額度<40萬元……35:360萬元≤額度其后每個等級相差10萬元是否在非正常時間取值0-11,根據(jù)需要,風(fēng)控系統(tǒng)會實時調(diào)整規(guī)則0:10:00-21:001:9:00-10:00或21:00-22:002:8:30-9:00或22:00-22:303:8:00-8:30或22:30-23:004:7:30-8:00或23:00-23:305:7:00-7:30或23:30-00:006:6:30-7:00或00:00-00:307:6:00-6:30或00:30-01:008:5:30-6:00或01:00-01:309:5:00-5:30或01:30-02:0010:4:30-5:00或02:00-02:3011:4:00-4:30或02:30-03:00第八章銀行卡盜刷風(fēng)險預(yù)警分析8.5數(shù)據(jù)預(yù)處理與探索分析python代碼:#加載數(shù)據(jù)集dataset=pd.read_csv("credit_transaction.csv",engine="python")dataset.describe()8.5.1描述性統(tǒng)計分析操作步驟:1.加載數(shù)據(jù)集,使用pandas的read_csv()函數(shù),讀取本案例的數(shù)據(jù)文件“credit_transaction.csv”。2.使用describe()函數(shù)查看數(shù)據(jù)集的匯總信息。第八章銀行卡盜刷風(fēng)險預(yù)警分析8.5.2缺失值填充python代碼:#查看缺失值print(dataset.isnull().sum())操作步驟:1.使用DataFrame的isnull()函數(shù)判斷是否有缺失值。2.通過sum()求和函數(shù)統(tǒng)計總的缺失值個數(shù)。3.調(diào)用函數(shù)dropna()進(jìn)行刪除。python代碼:#刪掉空值dataset=dataset.dropna()#查看是否還有缺失值print(dataset.isnull().sum())第八章銀行卡盜刷風(fēng)險預(yù)警分析8.5.3觀察數(shù)據(jù)集是否均衡python代碼:dataset.groupby("高風(fēng)險交易標(biāo)識").count()數(shù)據(jù)集中,“高風(fēng)險交易標(biāo)識”列有兩個取值,分別為0、1,利用groupby()函數(shù)可以對數(shù)據(jù)進(jìn)行分組,查看銀行卡消費信息中“高風(fēng)險交易標(biāo)識”的特征。第八章銀行卡盜刷風(fēng)險預(yù)警分析8.5.4數(shù)據(jù)特征及關(guān)聯(lián)性分析python代碼:risk_yes=dataset[dataset["高風(fēng)險交易標(biāo)識"]==1]risk_yes_count=risk_yes.groupby("ip在國外").count()print("高風(fēng)險:"+str(risk_yes.shape[0]))count_risk_yes=risk_yes.groupby("ip在國外").count()count_risk_yes_ip_0=count_risk_yes.loc[0,"高風(fēng)險交易標(biāo)識"]count_risk_yes_ip_1=count_risk_yes.loc[1,"高風(fēng)險交易標(biāo)識"]print("高風(fēng)險ip在國外:"+str(count_risk_yes_ip_1))print("高風(fēng)險ip不在國外:"+str(count_risk_yes_ip_0))1.高風(fēng)險交易數(shù)據(jù)特征分析第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falselabel=['在國外','不在國外']#定義餅圖的標(biāo)簽,標(biāo)簽是列表explode=[0.01,0.01]#設(shè)定各項距離圓心n個半徑values=[30172,35099]plt.pie(values,explode=explode,labels=label,autopct='%1.1f%%')#繪制餅圖plt.title('ip在國外是高風(fēng)險的占比')#繪制標(biāo)題plt.show對以上統(tǒng)計結(jié)果可以利用圖形更直觀地展現(xiàn)。第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:risk_no=dataset[dataset["高風(fēng)險交易標(biāo)識"]==0]print("非高風(fēng)險:"+str(risk_no.shape[0]))count_risk_no=risk_no.groupby("ip在國外").count()count_risk_no_ip_0=count_risk_no.loc[0,"高風(fēng)險交易標(biāo)識"]count_risk_no_ip_1=count_risk_no.loc[1,"高風(fēng)險交易標(biāo)識"]print("非高風(fēng)險ip在國外:"+str(count_risk_no_ip_1))print("非高風(fēng)險ip不在國外:"+str(count_risk_no_ip_0))2.統(tǒng)計非高風(fēng)險交易數(shù)據(jù)第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:label=['在國外','不在國外']#定義餅圖的標(biāo)簽,標(biāo)簽是列表explode=[0.01,0.01]#設(shè)定各項距離圓心n個半徑values=[6025,28699]plt.pie(values,explode=explode,labels=label,autopct='%1.1f%%')plt.title('ip在國外非高風(fēng)險的占比')plt.show可視化餅圖的代碼。第八章銀行卡盜刷風(fēng)險預(yù)警分析關(guān)聯(lián)性分析1為了完成高風(fēng)險盜刷識別邏輯回歸模型的探索,本節(jié)將問題分解成如下幾個步驟:8.7信用卡盜刷識別邏輯回歸模型基于關(guān)聯(lián)性進(jìn)行特征過濾
2設(shè)計樣本集3使用邏輯回歸模型建立信用卡盜刷識別模型4進(jìn)行模型的預(yù)測5使用性能度量進(jìn)行信用卡盜刷識別模型的評估6第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:#計算協(xié)方差datasetCorr=dataset.corr()datasetCorr8.7.1關(guān)聯(lián)性分析1.查看變量之間的相關(guān)關(guān)系第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:importseabornassnsplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseplt.figure(figsize=(20,10))sns.heatmap(datasetCorr,annot=False,fmt="float",linewidths=0.5,cmap="RdYlBu")plt.tick_params(labelsize=20)font1={'family':'TimesNewRoman','weight':'normal','size':23,}plt.show()2.變量之間相關(guān)關(guān)系可視化表達(dá)第八章銀行卡盜刷風(fēng)險預(yù)警分析python代碼:datasetCorr=dataset.corr()["高風(fēng)險交易標(biāo)識"]print(datasetCorr)3.計算“高風(fēng)險交易標(biāo)識”與其他特征變量的關(guān)系第八章銀行卡盜刷風(fēng)險預(yù)警分析8.7.2特征過濾python代碼:#特征篩選list=list(datasetCorr[(datasetCorr>0.1)|(datasetCorr<-0.1)].keys())datasetCorrSelection=dataset[list]第八章銀行卡盜刷風(fēng)險預(yù)警分析案例使用python中用于機器學(xué)習(xí)的庫Scikit-Learn,Scikit-Learn提供了一系列的監(jiān)督與非監(jiān)督學(xué)習(xí)算法的Python接口。Scikit-Learn主要關(guān)注數(shù)據(jù)建模,對于裝載、操作、匯總數(shù)據(jù)方面并不關(guān)注。如果要關(guān)注這些特性可以參考上面探索過程使用的NumPy庫和Pandas庫,這些庫做的更好。8.7.3邏輯回歸模型構(gòu)建與評估第八章銀行卡盜刷風(fēng)險預(yù)警分析邏輯回歸模型構(gòu)建與評估過程包括以下幾個步驟。1.數(shù)據(jù)集切分與模型構(gòu)建。2.利用模型進(jìn)行預(yù)測。4.利用測試集評判模型的預(yù)測效果3.預(yù)測模型效果評估。python代碼:trainingData=datasetCorrSelection[:int(datasetCorrSelection.shape[0]*0.8)]predictData=datasetCorrSelection[int(datasetCorrSelection.shape[0]*0.8):datasetCorrSelection.shape[0]]fromsklearn.li
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 8推翻帝制 民族覺醒(教學(xué)實錄)-統(tǒng)編版道德與法治五年級下冊
- 2024年新型城鎮(zhèn)化建設(shè)項目投資借款合同匯編3篇
- 2024年度影視作品拍攝專業(yè)聘用合同3篇
- 小學(xué)信息技術(shù)第二冊 網(wǎng)上交流信息教學(xué)實錄 北京版
- 14《圓明園的毀滅》(教學(xué)實錄)2024-2025學(xué)年-統(tǒng)編版五年級語文上冊
- 2023四年級數(shù)學(xué)上冊 2 公頃和平方千米第1課時 認(rèn)識公頃配套教學(xué)實錄 新人教版
- 鋼筋購買合同
- 2024山西房產(chǎn)買賣合同(含環(huán)保材料及節(jié)能標(biāo)準(zhǔn))3篇
- 個人房屋租賃合同
- 設(shè)施齊全商鋪長期租賃合同
- 大學(xué)生職業(yè)規(guī)劃課件
- 2024年食品生產(chǎn)企業(yè)食品安全管理人員監(jiān)督抽查考試題庫(含答案)
- 中醫(yī)與診斷-學(xué)做自己的醫(yī)生智慧樹知到期末考試答案2024年
- 軍事理論智慧樹知到期末考試答案2024年
- 2024年貴州貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2024年貴州燃?xì)饧瘓F(tuán)貴安新區(qū)燃?xì)庥邢薰菊衅腹P試參考題庫附帶答案詳解
- 中醫(yī)診療設(shè)備種類目錄
- 人教版小學(xué)數(shù)學(xué)三上《數(shù)學(xué)廣角-集合》單元集體備課及全部課時教學(xué)設(shè)計
- [廣州]污水處理廠工程監(jiān)理投標(biāo)大綱(325頁完整)_secret
- 南京祿口機場二期擴(kuò)建工程項目融資分析報告(第一稿)
- 鄉(xiāng)鎮(zhèn)殯葬整治工作開展情況匯報
評論
0/150
提交評論