用戶貸款風險預測—數據探索


競賽地址:http://www.pkbigdata.com/common/cmpt/%E7%94%A8%E6%88%B7%E8%B4%B7%E6%AC%BE%E9%A3%8E%E9%99%A9%E9%A2%84%E6%B5%8B_%E8%B5%9B%E4%BD%93%E4%B8%8E%E6%95%B0%E6%8D%AE.html

數據探索:

比賽一共提供五張表,分別是:

  訓練數據:用戶基本屬性,銀行流水記錄,用戶瀏覽行為,信用卡賬單記錄,放款時間,是否逾期

  測試數據:用戶基本屬性,銀行流水記錄,用戶瀏覽行為,信用卡賬單記錄,放款時間,用戶ID     最后預測這些用戶ID是否會逾期

一、用戶基本屬性

數據一共55596條,包括六個字段(ID,性別,職業,教育程度,婚姻狀況,戶口類型)可以試着探索各個屬性與是否逾期的關系

五個屬性的數量分布

fig,ax = plt.subplots(2,3)
fig.set_size_inches(20,12) p = sns.color_palette() ax[0][0].bar(訓練基本屬性表.iloc[:,1].value_counts().index,訓練基本屬性表.iloc[:,1].value_counts(),color = p[0]) ax[0][0].set_xlabel(訓練基本屬性表.iloc[:,1].value_counts().name) ax[0][1].bar(訓練基本屬性表.iloc[:,2].value_counts().index,訓練基本屬性表.iloc[:,2].value_counts(),color = p[1]) ax[0][1].set_xlabel(訓練基本屬性表.iloc[:,2].value_counts().name) ax[0][2].bar(訓練基本屬性表.iloc[:,3].value_counts().index,訓練基本屬性表.iloc[:,3].value_counts(),color = p[2]) ax[0][2].set_xlabel(訓練基本屬性表.iloc[:,3].value_counts().name) ax[1][0].bar(訓練基本屬性表.iloc[:,4].value_counts().index,訓練基本屬性表.iloc[:,4].value_counts(),color = p[3]) ax[0][0].set_xlabel(訓練基本屬性表.iloc[:,1].value_counts().name) ax[1][0].set_xlabel(訓練基本屬性表.iloc[:,4].value_counts().name) ax[1][1].bar(訓練基本屬性表.iloc[:,5].value_counts().index,訓練基本屬性表.iloc[:,5].value_counts(),color = p[4]) ax[1][1].set_xlabel(訓練基本屬性表.iloc[:,5].value_counts().name

性別中1的數量明顯更多,職業中2的職業也更多,受教育程度更多是3,4,婚姻狀況更多是1,3,戶口類型較為平均

合並屬性表和是否逾期表,查看屬性與最終是否逾期之間有無明顯關系

是否逾期表中的數據數量也是55596條,取值分別是0,1  其中0的標簽數量明顯多於1

看看用戶的屬性不同,逾期的比例是不是也不同,這里使用了逾期率

 

根據前面我們知道:性別中1的數量明顯更多,職業中2的職業也更多,受教育程度更多是3,4,婚姻狀況更多是1,3,戶口類型較為平均

在逾期情況中發現,性別未知的逾期比例最高,2職業最多但是逾期最少,估計是白領。婚姻狀況最多是1,3,逾期中最高的是0,5估計是離異等

以上就是全部的屬性這個表的分析,接下來看看別的表

 二、銀行流水記錄

銀行流水記錄表,表中主要是用戶支出收入以及工資收入情況,匯總用戶的這段時間的總收入總支出合並到前面的統計屬性表中去,主要的明細還是支出,數據一共六百多萬條

#統計每個用戶的支出,收入,工資收入合並到屬性表中去
用戶支出 = 訓練銀行流水記錄表[訓練銀行流水記錄表['交易類型'] == 1].groupby('用戶ID',as_index=False)['交易金額'].agg({'支出次數':np.size,'支出總金額':np.sum})
用戶收入 = 訓練銀行流水記錄表[訓練銀行流水記錄表['交易類型'] == 0].groupby('用戶ID',as_index=False)['交易金額'].agg({'收入次數':np.size,'收入總金額':np.sum})
工資收入 = 訓練銀行流水記錄表[訓練銀行流水記錄表['工資收入標記'] == 1].groupby('用戶ID',as_index=False)['交易金額'].agg({'工資收入次數':np.size,'工資總金額':np.sum})
統計屬性銀行流水表 = pd.merge(統計屬性表,用戶支出,how='left')
統計屬性銀行流水表 = pd.merge(統計屬性銀行流水表,用戶收入,how='left')
統計屬性銀行流水表 = pd.merge(統計屬性銀行流水表,工資收入,how='left')

並不是每個用戶都有這些數據,所以記得連接時候要用left啊,然后缺失值我們用0填充

#看看支出,收入,工資收入與是否逾期的關系
fig,ax = plt.subplots(2,3)
fig.set_size_inches(18,12)
ax[0][0].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['支出次數'],color = p[0])
ax[0][0].set_xlabel('支出次數')
ax[1][0].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['支出總金額'],color = p[1])
ax[1][0].set_xlabel('支出總金額')

ax[0][1].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['收入次數'],color = p[2])
ax[0][1].set_xlabel('收入次數')
ax[1][1].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['收入總金額'],color = p[3])
ax[1][1].set_xlabel('收入總金額')

ax[0][2].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['工資收入次數'],color = p[4])
ax[0][2].set_xlabel('工資收入次數')
ax[1][2].scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['工資總金額'],color = p[5])
ax[1][2].set_xlabel('工資總金額')

 在逾期1中發現收入次數和收入總金額明顯少於0的,而在支出中相比差別不大。在支出相差不多情況下,收入越少自然逾期概率越大

 

#還可以增加一個收入-支出的指數
統計屬性銀行流水表['凈收入'] = 統計屬性銀行流水表['收入總金額'] - 統計屬性銀行流水表['支出總金額'] 
fig,ax = plt.subplots()
fig.set_size_inches(6,6)
ax.scatter(統計屬性銀行流水表['樣本標簽'],統計屬性銀行流水表['凈收入'])

 

以上就是銀行流水記錄表,如果想要研究還可以看看各個性別,職業,教育水平的工資、收入、支出等信息對比,這里由於研究的主要是逾期情況,因此主要跟逾期情況做對比

三、信用卡賬單記錄表

一共兩百多萬條數據,十五個字段,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM