python信用評分卡建模(附代碼,博主錄制)
(十四)深度神經網絡模型用於評分卡模型(理論)
https://blog.csdn.net/LuYi_WeiLin/article/details/88429879轉載
本篇文章主要講解以下兩個內容
- 神經網絡的概述
- 深度神經網絡模型用於違約概率預測(代碼實現看下一篇博客)
神經網絡的概述
什么是人工神經網絡
神經網絡算法的核心:計算的過程、連接的結構、評估的工作、糾錯的反饋、瘋狂培訓(不斷運行)
人工神經網絡的類型
神經元的特征:並非簡單的相加,有相應的輸出函數
學習規則:使得模型輸出與標簽盡量一致,不斷去調整偏置因子和權重
其中下面的Hopfield網絡、波爾茲曼機、適應諧振理論是物理學科衍生出來的神經網絡模型
截止目前其實已經達到上百種神經網絡模型了
最簡單的人工網絡模型:單層感知機器
單層感知器只能處理線性可分的情況
常見的激勵函數
Sigmoid:無論x輸入什么,輸出屬於(0,1)
Tanh(雙曲正切):無論x輸入什么,輸出屬於(-1,1)。Tanh(x)=2*Sigmoid(2*x)-1
Softplus:Softplus(x)=log(1+e^x),函數逼近於Relu函數,
有了Relu為什么要引進Softplus?因為Softplus函數性質優於Relu
Relu(整流器 Rectifier Liner Units):x輸入小於0,輸出為0;x輸入大於等於0,輸出x
在隨機梯度下降中比Sigmoid和Tanh快,但是Relu很脆弱,很容易掛掉
二進制(線性分類中使用):當x小於0為0,x大於等於0為1
損失函數
損失函數其實不屬於神經網絡一部分,損失函數是預測輸出值與真實值差了多少
構建神經網絡,估計模型參數要借助損失函數,看輸出值與真實值差了多少,反過去調整權重及參數(反向傳播法【傳播的是誤差】基於鏈式法則),使用的是梯度下降法調整參數
為什么是反向,因為誤差傳遞反向與信息傳遞方向相反
前饋型多層感知器
深度神經網絡模型,深度的意思就是有多層隱藏層
深度神經網絡模型用於違約概率預測
數據預處理
ANN模型對數據要求高
不能有缺失值:缺失值可以使用K-means、混合高斯分布、MCMC進行填補,或者剔除
移除常量型的特征:減少計算量、防止梯度流失
不能接受非數值形式輸入,字符型變量需要編碼
獨熱(One hot)編碼
Dummy編碼(啞變量編碼):缺點是對於測試集中在訓練集沒有出現的數據無能為力
濃度編碼:之前提及的badrate編碼
變量歸一化/標准化:輸入特征尺度差異容忍很差
Z均值法:數值減去平均值,再除以其標准差,得到均值為0,標准差為1的服從標准正態分布的數據。
極差法和Z均值法容易受到極值的影響,剔除極值
什么是變量的歸一化/標准化/中心化可以查看下面的鏈接
http://www.datasoldier.net/archives/505
隱藏層連接狀態並非全連接,避免過擬合以及減少計算量
學習率learning rate
迭代次數
模型的效果
人工神經網絡的優缺點
在文章后,匯總一些有關神經網絡模型用於評分卡模型問題:
首先評分卡模型到底能不能用神經網絡模型來建立模型呢?
神經網絡模型的優點就是模型准確度高,但是解釋性不強。像申請評分卡、行為評分卡、催收評分卡一般需要在業務上可解釋,一般不常用神經網絡模型去建立模型,而像反欺詐模型不太需要可解釋性,可以使用神經網絡模型來建立模型。
神經網絡模型只有最終輸出的值有意義嗎?
不單單是輸出的信息是有用的,中間的隱藏層值可能也是有用的,但是對於前饋型神經網絡,數據流入流出是單向的,包含的信息就少一點。但是RNN和AutoEncoder的話,中間的隱藏層值包含的信息量是豐富的,還可以從中提取新特征值
激活函數一般有什么要求嗎?
激活函數除函數為0之外,其他地方要求可導
激活函數的導數不能是發散的,影響計算的穩定性
激活函數的導數不能太敏感,x變化一點點,整個偏導數不應有很大的變化
不能出現梯度消失的情況,梯度消失就導致梯度下降法不起作用了(信息傳遞方向與誤差傳遞方向相反,因為只有輸出才通過損失函數計算出誤差,之后通過梯度下降法調整權重)
激活函數單調性,這樣保證單層神經網絡是凸函數,多層網絡輸出也是凸函數,凸函數在最優化上容易解決
激活函數輸出值范圍有限,這樣梯度優化的方法更加穩定
激活函數最好為非線性,能實現非線性划分
隱藏層必須的嗎?隱藏層一定要全連接嗎?其加入有什么作用?
非必須;不一定要全連接;提高模型穩定性以及預測精度
python金融風控評分卡模型和數據分析微專業課(博主親自錄制視頻):http://dwz.date/b9vv
微信掃二維碼,免費學習更多python資源