《Python經(jīng)濟(jì)大數(shù)據(jù)分析》Python應(yīng)用貸款違約預(yù)測_第1頁
《Python經(jīng)濟(jì)大數(shù)據(jù)分析》Python應(yīng)用貸款違約預(yù)測_第2頁
《Python經(jīng)濟(jì)大數(shù)據(jù)分析》Python應(yīng)用貸款違約預(yù)測_第3頁
《Python經(jīng)濟(jì)大數(shù)據(jù)分析》Python應(yīng)用貸款違約預(yù)測_第4頁
《Python經(jīng)濟(jì)大數(shù)據(jù)分析》Python應(yīng)用貸款違約預(yù)測_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Python應(yīng)用:貸款違約預(yù)測核心知識包括:單變量Logistic回歸、多變量Logistic回歸;變量篩選、逐步Logistic回歸;決策樹建樹、剪樹、Quinlan系列決策樹和CART決策樹;ID3算法及C4.5算法;決策樹可視化;貸款違約預(yù)測Logistic模型、違約概率;貸款違約預(yù)測決策樹模型。CONTENTS目錄5.1 Logistic回歸5.1.1 Logistic函數(shù)5.1.2 Logistic回歸模型5.1.3 應(yīng)用Logistic模型預(yù)測銀行貸款違約5.2 決策樹5.2.1 信息增益5.2.2 信息增益率5.2.3 基尼指數(shù)5.2.4 決策樹的剪枝5.2.5 應(yīng)用決策樹建模預(yù)測銀行貸款違約貸款違約預(yù)測是風(fēng)險管理領(lǐng)域常見的問題之一,因變量取違約或者不違約,適合用Logistic回歸或者決策樹方法處理。logistic回歸是一種廣義的線性回歸分析模型,常用于數(shù)據(jù)挖掘,疾病自動診斷,經(jīng)濟(jì)預(yù)測等領(lǐng)域。決策樹是一種機(jī)器學(xué)習(xí)的方法,是一種樹形結(jié)構(gòu),其中每個內(nèi)部節(jié)點表示一個屬性上的判斷,每個分支代表一個判斷結(jié)果的輸出,最后每個葉節(jié)點代表一種分類結(jié)果,生成算法有ID3,C4.5和C5.0等。01PARTONE5.1 Logistic回歸Logistic回歸屬于概率型非線性回歸,分為二分類和多分類的回歸模型。對于二分類的Logistic回歸,因變量只有“是、否”兩個取值,記為1和0。假設(shè)當(dāng)自變量為

,

取“是”的概率為

,則取“否”的概率為

。0102035.1 Logistic回歸5.1.1 Logistic函數(shù)5.1.2 Logistic回歸模型5.1.3 應(yīng)用Logistic模型預(yù)測銀行貸款違約5.1.1 Logistic函數(shù)Logistic回歸中因變量取值只有1-0(是或否、發(fā)生或不發(fā)生)。假設(shè)自變量

作用下,記

取1的概率是

,取0概率是

。取1和0的概率之比為

,稱為事件的優(yōu)勢比(odds),對odds取自然對數(shù)即得Logistic變換:令

,則

即為Logistic函數(shù)。當(dāng)

在(0,1)之間變化時,odds的取值范圍是

,則

的取值范圍是

。5.1.2 Logistic回歸模型模型為:因為

的取值范圍是

,因此自變量

可在任意范圍內(nèi)取值。記

,得到:其中

:在沒有自變量,即

全部取0,

發(fā)生概率之比的自然對數(shù);

:某自變量

變化時,即

相比,

優(yōu)勢比的對數(shù)值。5.1.3

案例分析以下是一份銀行貸款違約數(shù)據(jù)(截取部分),擬使用Logistic模型預(yù)測銀行貸款違約情況;其中因變量y代表是否違約,是個二分變量,取值為1表示違約,0表示不違約。自變量分別為:x1表示貸款人年齡;x2表示教育水平;x3表示工齡;x4表示貸款人地址;x5表示收入;x6表示負(fù)債率;x7表示信用卡負(fù)債;x8表示其他負(fù)債。5.1.3 案例分析1.準(zhǔn)備工作首先引入所需要的包:導(dǎo)入數(shù)據(jù):將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集合測試集,其中訓(xùn)練集用于模型的訓(xùn)練,測試集用于檢驗?zāi)P停航Y(jié)果分析:

訓(xùn)練集樣本量:560測試集樣本量:140隨機(jī)抽樣設(shè)置的訓(xùn)練集與測試集樣本大致比例為8:2。importnumpyasnpimportpandasaspdimportstatsmodels.apiassmimportstatsmodels.formula.apiassmffilename=r'C:\Users\LENOVO\Desktop\example\Linear22.xlsx'data=pd.read_excel(filename)print(data.head())train=data.sample(frac=0.8,random_state=12345).copy()test=data[~data.index.isin(train.index)].copy()print('訓(xùn)練集樣本量:%i\n測試集樣本量:%i'%(len(train),len(test)))5.1.3 案例分析2.

單變量Logistic回歸我們首先使用單自變量建立一元Logistic模型,代碼如下:結(jié)果分析:可以看到,當(dāng)僅使用x6進(jìn)行Logistic回歸時,使用summary可以查看模型的基本信息、參數(shù)估計及檢驗??梢钥吹絰6的系數(shù)為0.1310,P值顯著?;貧w方程為:其中x6代表負(fù)債率,代表違約概率。(2)式除以(1)式,

即,負(fù)債率越高,每增加一個單位后的違約發(fā)生比是原違約發(fā)生比的1.14倍。其他的單變量也可以類似分析。GeneralizedLinearModelRegressionResults==================================================Dep.Variable:yNo.Observations:560Model:GLMDfResiduals:558ModelFamily:BinomialDfModel:1LinkFunction:logitScale:1.0000Method:IRLSLog-Likelihood:-282.51Date:Wed,30Jun2021Deviance:565.03Time:21:57:20Pearsonchi2:555.No.Iterations:4CovarianceType:nonrobust==================================================coefstderrzP>|z|[0.0250.975]------------------------------------------------------------------------------Intercept-2.50850.216-11.6030.000-2.932-2.085x60.13100.0168.3450.0000.1000.162==================================================formula='''y~x6'''lg=smf.glm(formula=formula,data=train,family=sm.families.Binomial(sm.families.links.logit)).fit()print(lg.summary())5.1.3 案例分析3.

多變量Logistic回歸接下來考慮引入全部自變量的多元Logistic回歸:結(jié)果分析:可以看到,x3,x4,x6,x7比較顯著,而其他變量不顯著。可以刪除不顯著的變量。也可以使用變量篩選方法:向前法、向后法或逐步法。篩選的原則一般選擇AIC、BIC或者P值。GeneralizedLinearModelRegressionResults==================================================Dep.Variable:yNo.Observations:560Model:GLMDfResiduals:551ModelFamily:BinomialDfModel:8LinkFunction:logitScale:1.0000Method:IRLSLog-Likelihood:-227.13Date:Thu,01Jul2021Deviance:454.27Time:15:25:37Pearsonchi2:559.No.Iterations:6CovarianceType:nonrobust==================================================coefstderrzP>|z|[0.0250.975]------------------------------------------------------------------------------Intercept-1.25290.686-1.8260.068-2.5970.092x10.01380.0200.7010.483-0.0250.053x20.14420.1341.0740.283-0.1190.407x3-0.22870.035-6.4530.000-0.298-0.159x4-0.08780.025-3.4530.001-0.138-0.038x5-0.00650.008-0.8070.420-0.0220.009x60.07260.0322.2480.0250.0090.136x70.55070.1174.7110.0000.3220.780x80.05340.0790.6790.497-0.1010.207==================================================formula='''y~x1+x2+x3+x4+x5+x6+x7+x8'''lg_m=smf.glm(formula=formula,data=train,family=sm.families.Binomial(sm.families.links.logit)).fit()print(lg_m.summary())5.1.3 案例分析4.

逐步回歸下面使用向前法進(jìn)行逐步回歸,代碼如右:defforward_select(data,response):remaining=set(data.columns)remaining.remove(response)selected=[]current_score,best_new_score=float('inf'),float('inf')whileremaining:aic_with_candidates=[]forcandidateinremaining:formula="{}~{}".format(response,'+'.join(selected+[candidate]))aic=smf.glm(formula=formula,data=data,family=sm.families.Binomial(sm.families.links.logit)).fit().aicaic_with_candidates.append((aic,candidate))aic_with_candidates.sort(reverse=True)best_new_score,best_candidate=aic_with_candidates.pop()ifcurrent_score>best_new_score:remaining.remove(best_candidate)selected.append(best_candidate)current_score=best_new_scoreprint('aicis{},continuing!'.format(current_score))else:print('forwardselectionover!')breakformula="{}~{}".format(response,'+'.join(selected))print('finalformulais{}'.format(formula))model=smf.glm(formula=formula,data=data,family=sm.families.Binomial(sm.families.links.logit)).fit()return(model)candidates=['y',"x1",'x2','x3','x4','x5','x6','x7','x8']data_for_select=train[candidates]lg_m1=forward_select(data=data_for_select,response='y')print(lg_m1.summary())5.1.3 案例分析4.

逐步回歸結(jié)果分析:aicis569.0270696141556,continuing!aicis520.5990422729102,continuing!aicis478.56644475676023,continuing!aicis466.5141907846284,continuing!forwardselectionover!finalformulaisy~x6+x3+x7+x4可以看到,不顯著的變量已經(jīng)被自動刪除了。變量篩選有時候還需要結(jié)合對業(yè)務(wù)的理解。對于回歸方程及系數(shù)的解釋,類似于一元Logistic回歸。GeneralizedLinearModelRegressionResults===========================================Dep.Variable:yNo.Observations:560Model:GLMDfResiduals:555ModelFamily:BinomialDfModel:4LinkFunction:logitScale:1.0000Method:IRLSLog-Likelihood:228.26Date:Thu,01Jul2021Deviance:456.51Time:15:22:15Pearsonchi2:536.No.Iterations:6CovarianceType:nonrobust===========================================coefstderrzP>|z|[0.0250.975]-------------------------------------------------------------------------Intercept-0.84710.275-3.0820.002-1.386-0.308x60.08840.0204.3330.0000.0480.128x3-0.22700.031-7.3820.000-0.287-0.167x70.52500.0915.7520.0000.3460.704x4-0.07690.021-3.5790.000-0.119-0.035-------------------------------------------------------------------------5.1.3 案例分析5.

模型判斷接下來,可以預(yù)測,輸出違約概率:結(jié)果分析:50.221121230.114302290.496134320.282920340.079916Name:proba,dtype:float64。train['proba']=lg_m1.predict(train)test['proba']=lg_m1.predict(test)print(test['proba'].head())計算模型的準(zhǔn)確性如下:test['prediction']=(test['proba']>0.5).astype('int')acc=sum(test['prediction']==test['y'])/np.float(len(test))print('Theaccurancyis%.2f'%acc)結(jié)果如下:Theaccurancyis0.83。02PARTTWO5.2 決策樹決策樹屬于經(jīng)典的十大數(shù)據(jù)挖掘算法之一,利用像樹一樣的圖形或決策模型來輔助決策,可以用于數(shù)值型因變量的預(yù)測和離散型因變量的分類,在分類、預(yù)測、規(guī)則提取等領(lǐng)域有廣泛應(yīng)用。決策樹是一樹狀結(jié)構(gòu),它的每一個葉節(jié)點對應(yīng)著一個分類,非葉節(jié)點對應(yīng)著在某個屬性上的劃分,根據(jù)樣本在該屬性上的不同取值將其劃分成若干個子集。對于非純的葉節(jié)點,多數(shù)類的標(biāo)號給出到達(dá)這個節(jié)點的樣本所屬的類。常用的有兩類決策樹:Quinlan系列決策樹和CART決策樹。前者涉及ID3算法及C4.5算法。步驟總體概括為建樹和剪樹。建樹的關(guān)鍵是選擇最有解釋力度的變量,對每個變量選擇最優(yōu)的分割點??梢允褂眯畔⒃鲆妗⑿畔⒃鲆媛屎突嶂笖?shù)來挑選。剪樹用于控制樹的生成規(guī)模。020304055.2 決策樹5.2.2 信息增益率5.2.3 基尼指數(shù)5.2.4 決策樹的剪枝5.2.5 案例分析015.2.1 信息增益5.2.1 信息增益熵的概念:熵用來表示信息量的大小。信息量越大(分類越不“純凈”),對應(yīng)的熵值就越大。信息熵的計算公式如下:

,

表示隨機(jī)變量

中的水平個數(shù),

表示隨機(jī)變量

的水平

的概率。信息熵反映的是某個事件所有可能值的熵和,可以衡量其純凈程度。

的水平較少、混亂程度較低時,信息熵較?。环粗畡t較大。在實際應(yīng)用中,會將概率

的值用經(jīng)驗概率替換,所以經(jīng)驗信息熵可以表示為:其中,

表示事件中的所有樣本點,

表示事件的第k個可能值出現(xiàn)的次數(shù),所以商值

表示第k個可能值出現(xiàn)的頻率。5.2.1 信息增益如果需要基于其他事件計算某個事件的熵,就稱為條件熵。

J表示變量A的某個水平,m表示A的水平個數(shù),

表示D被A的j水平所分割的觀測數(shù);D表示隨機(jī)變量D的觀測總數(shù)。

表示隨機(jī)變量D在A的j水平分割下的信息熵。則信息增益定義為:對于已知的事件A來說,事件D的信息增益就是D的信息熵與A事件下D的條件熵之差,事件A對事件D的影響越大,條件熵H(D|A)就會越?。ㄔ谑录嗀的影響下,事件D被劃分得越“純凈”),在根節(jié)點或中間節(jié)點的變量選擇過程中,就是挑選出各自變量下因變量的信息增益最大的。5.2.2 信息增益率決策樹中的ID3算法使用信息增益指標(biāo)實現(xiàn)根節(jié)點或中間節(jié)點的字段選擇,但是該指標(biāo)存在一個非常明顯的缺點,即信息增益會偏向于取值較多的字段,且輸入變量必須是分類變量(連續(xù)變量必須離散化)。C4.5算法對這兩個缺點進(jìn)行了改進(jìn),將信息增益改為信息增益率,且對連續(xù)變量進(jìn)行自動離散化。信息增益率在信息增益的基礎(chǔ)上進(jìn)行相應(yīng)的懲罰。公式為:其中

為事件A的信息熵。事件A的取值越多,

可能越大,但同時

也會越大,這樣以商的形式就實現(xiàn)了

的懲罰。如果用于分類的數(shù)據(jù)集中各離散型自變量的取值個數(shù)沒有太大差異,那么信息增益指標(biāo)與信息增益率指標(biāo)在選擇變量過程中并沒有太大的差異。5.2.3基尼指數(shù)ID3算法與C4.5算法都只能針對離散型因變量進(jìn)行分類,對于連續(xù)型的因變量就顯得束手無策了。為了能夠讓決策樹預(yù)測連續(xù)型的因變量,Breiman等人在1984年提出了CART算法,該算法也稱為分類回歸樹,它所使用的字段選擇指標(biāo)是基尼指數(shù)。公式為:其中,

表示某事件第k個可能值的發(fā)生概率,該概率可以使用經(jīng)驗概率表示,即:

表示頻率。5.2.3基尼指數(shù)在引入某個用于分割的待選自變量后(假設(shè)分割后的樣本量分別為S1和S2),則分割后的基尼系數(shù)為:S1和S2表示劃分成兩類的樣本量,

表示劃分成兩類各自的基尼系數(shù)值。CART算法采用基尼系數(shù)的減少測度異質(zhì)性下降的程度,在所有分割中基尼系數(shù)減少最多的用于構(gòu)建當(dāng)前分割。ID3和C4.5都屬于多分支的決策樹,CART則是二分支的決策樹,在樹生長完成后,最終根據(jù)葉節(jié)點中的樣本數(shù)據(jù)決定預(yù)測結(jié)果。對于離散型的分類問題而言,葉節(jié)點中哪一類樣本量最多,則該葉節(jié)點就代表了哪一類;對于數(shù)值型的預(yù)測問題,則將葉節(jié)點中的樣本均值作為該節(jié)點的預(yù)測值。CART運行效率優(yōu)于C4.5算法。Python中的sklearn模塊選擇了一個較優(yōu)的決策樹算法,即CART算法,它既可以處理離散型的分類問題(分類決策樹),也可解決連續(xù)型的預(yù)測問題(回歸決策樹)。這兩種樹分別對應(yīng)DecisionTreeClassifier類和DecisionTreeRegressor類。5.2.4決策樹的剪枝決策樹的剪枝通常有兩類方法,一類是預(yù)剪枝,另一類是后剪枝。預(yù)剪枝很好理解,就是在樹的生長過程中就對其進(jìn)行必要的剪枝,例如控制決策樹生長的最大深度,即決策樹的層數(shù);控制決策樹中父節(jié)點和子節(jié)點的最少樣本量或比例;后剪枝相對來說要復(fù)雜很多,它是指決策樹在得到充分生長的前提下再對其返工修剪。常用的方法有計算結(jié)點中目標(biāo)變量預(yù)測精度或誤差;綜合考慮誤差與復(fù)雜度進(jìn)行剪樹。5.2.5 案例分析同樣使用上一節(jié)的銀行貸款違約數(shù)據(jù),解釋同上。我們擬采用決策樹建模,首先引入所需要的包:讀取數(shù)據(jù)并輸出:輸出結(jié)果如下(部分?jǐn)?shù)據(jù)):

yx1x2x3x4x5x6x7x80141317121769.311.365.01102711063117.31.364.00204011514555.50.862.173041115141202.92.660.8241242202817.31.793.06importnumpyasnpimportpandasaspdimportstatsmodels.apiassmimportmatplotlib.pyplotaspltfilename=r'C:\Users\LENOVO\Desktop\example\Linear22.xlsx'data1=pd.read_excel(filename)print(data1.head())其中因變量y代表是否違約,是個二分變量,取值為1表示違約,0表示不違約。自變量分別為:x1表示貸款人年齡;x2表示教育水平;x3表示工齡;x4表示貸款人地址;x5表示收入;x6表示負(fù)債率;x7表示信用卡負(fù)債;x8表示其他負(fù)債。5.2.5 案例分析從數(shù)據(jù)集提取自變量和因變量:使用scikit-learn將數(shù)據(jù)集劃分為訓(xùn)練集和測試集:接下來,我們建立一個決策樹,使用訓(xùn)練集進(jìn)行訓(xùn)練:data1.columns=['y','x1','x2','x3','x4','x5','x6','x7','x8']target=data1['y']#生成因變量data=sm.add_constant(data1.iloc[:,1:])#生成自變量fromsklearn.model_selectionimporttrain_test_splittrain_data,test_data,train_target,test_target=train_test_split(data,target,test_size=0.2,train_size=0.8,random_state=1234)fromsklearn.treeimportDecisionTreeClassifierclf=DecisionTreeClassifier(criterion='gini',max_depth=3,class_weight=None,random_state=1234)clf.fit(train_data,train_target)其中criterion=’gini’表示采用基尼系數(shù)作為樹生長的判斷依據(jù);max_depth表示樹的最大深度為3;class_weight=None表示每一類標(biāo)簽的權(quán)重是相等的;random_state表示隨機(jī)數(shù)種子,可以設(shè)置為任意正整數(shù)。設(shè)定后,隨機(jī)數(shù)也確定了,可以重現(xiàn)每次結(jié)果,避免因為隨機(jī)數(shù)不同而產(chǎn)生不同的模型結(jié)果。5.2.5 案例分析用測試集進(jìn)行評估,輸出評估報告:結(jié)果如下:

precisionrecallf1-scoresupport0

0.83

0.930.881071

0.65

0.390.4933accuracy

0.81

140macroavg0.74

0.660.69140weightedavg0.79

0.810.79140可以看到模型的f1-score當(dāng)因變量為1(違約)時為0.49,,為0(不違約)時為0.88,平均為0.69。靈敏度recall分別為0.39、0.93、0.66,模型識別能力還可以。importsklearn.metricsasmetricsprint(metrics.classification_report(test_target,clf.predict(test_data)))clf.set_params(**{'class_weight':{0:1,1:3}})clf.fit(train_data,train_target)print(metrics.classification_report(test_target,clf.predict(test_data)))如果對因變量標(biāo)簽設(shè)置不同的權(quán)重,結(jié)果會有所改變。權(quán)重相等時違約的預(yù)測準(zhǔn)確率較低,考慮到違約用戶帶來的

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論