1.定義問題:
在銀行業(yè)發(fā)展的上百年的歷史中,它推動了整個(gè)經(jīng)濟(jì)社會的不斷發(fā)展,無論是對于社會發(fā)展還是自身成長都取得了很大的成就。但是用戶出現(xiàn)還貸違約的風(fēng)險(xiǎn)是銀行運(yùn)營中資金的最大風(fēng)險(xiǎn)。過去銀行的貸款可以通過調(diào)查借貸人的明顯資產(chǎn)總數(shù),如房產(chǎn)、車、企業(yè)等,然后按比例折算給借貸人放款。如今借貸需求大量出現(xiàn),銀行如何降低借錢的風(fēng)險(xiǎn)。我們可以使用邏輯回歸算法,從大量的歷史個(gè)人數(shù)據(jù),找出有那些關(guān)鍵特征數(shù)據(jù)可能影響用戶違約。
2.準(zhǔn)備數(shù)據(jù):
我們得到的原始數(shù)據(jù),可能是這樣的。

經(jīng)過對原始數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)教育和地址都是中文數(shù)值,這樣的數(shù)值不能適應(yīng)邏輯,回歸算法無法預(yù)測是否與教育和地址有關(guān)。我們需要對這兩類數(shù)據(jù)進(jìn)行特殊的編碼,如:學(xué)歷由低到高采用阿拉伯?dāng)?shù)值代替教育背景。地址可以由全國各個(gè)省市的人均可支配收入進(jìn)行由高到低的排列。(這樣的編碼方式可能不是最優(yōu),但是在同一次分析中相同屬性必須采用同一種編碼規(guī)則。將文本數(shù)據(jù)規(guī)范化是預(yù)處理中最需要做的)
預(yù)處理之后的數(shù)據(jù)如下:
用于計(jì)算的數(shù)據(jù)全部為數(shù)值類型。這樣的數(shù)據(jù)就可以套用邏輯回歸算法,找出違約用戶可能與那些屬性緊密相關(guān)。
3.分析方法:
邏輯回歸算法不同于線性回歸算法,后者一般是找出兩者數(shù)據(jù)可能存在的線性關(guān)系y=ax+b并且盡量精確a和b的值。邏輯回歸算法數(shù)據(jù)不是線性相關(guān)的,我們可以使用事件發(fā)生的幾率來表示事件發(fā)生與不發(fā)生的比值,假設(shè)發(fā)生的概率是p(取值在0~1范圍),那么發(fā)生的幾率是p/(1-p),取值0~正無窮大,幾率越大,發(fā)生的可能性越大。將其設(shè)為數(shù)學(xué)模型就是logit函數(shù):

那么logit函數(shù)圖如下:

對于客戶違約預(yù)測,通過過往歷史數(shù)據(jù),找出用戶是否違約關(guān)系很緊密的屬性。假設(shè)用戶違約,同時(shí)他們的銀行負(fù)載幾率都是特別高,就可以發(fā)現(xiàn)用戶是否會違約與銀行負(fù)載幾率關(guān)系緊密。
代碼如下:
# coding=utf-8
#邏輯回歸,自動建模importpandasaspd
#初始化參數(shù)filename ='data/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:,:8].as_matrix()#8個(gè)屬性y = data.iloc[:,8].as_matrix()#第九列結(jié)果標(biāo)簽
#導(dǎo)入邏輯回歸模型fromsklearn.linear_modelimportLogisticRegressionasLR
fromsklearn.linear_modelimportRandomizedLogisticRegressionasRLR
#建立隨機(jī)邏輯回歸模型,篩選變量rlr = RLR()
#訓(xùn)練模型rlr.fit(x,y)
#獲取特征篩選結(jié)果,也可以通過.scores_方法獲取各個(gè)特征的分?jǐn)?shù)rlr.get_support()
print(u'通過隨機(jī)邏輯回歸模型篩選特征結(jié)束。')
print(u'有效特征為:%s'%','.join(data.columns[rlr.get_support()]))
#篩選好特征x =data[data.columns[rlr.get_support()]].as_matrix()
#建立邏輯回歸模型lr = LR()
#用篩選后的特征數(shù)據(jù)來訓(xùn)練模型lr.fit(x,y)
print(u'邏輯回歸模型訓(xùn)練結(jié)束。')
#給出模型的平均正確率,本例為81.4%print(u'模型的平均正確率為:%s'%
lr.score(x,y))
4.結(jié)論:
該段代碼輸出:用戶是否違約與工齡、地址、負(fù)債率、信用卡負(fù)債關(guān)聯(lián)特別高。并且根據(jù)歷史數(shù)據(jù)計(jì)算出關(guān)聯(lián)性的可信度81.4%。
通過這個(gè)模型的計(jì)算與分析,銀行在對新借貸用戶是否放款的問題上,可以對用戶的工作工齡,用戶居住地址,用戶負(fù)載率和過往信用卡負(fù)債情況進(jìn)行深入調(diào)查,然后決定放貸情況。