Python银行风控模型的建立
一、用神经网络Sequential(序贯模型)搭建
1、背景:
700个数据,前8列作为x,最后一列为y,建立银行风控模型。(数据量不大)
二分类问题,损失函数用’binary_crossentropy’,指标也用metrics=[BinaryAccuracy()]
训练集和测试集8-2开,但我最后还是用y和yp比较模型精度,所以不应该要求精度太高(避免过拟合)


2、经过多次调参,最好的model代码如下
model = Sequential()
model.add(Dense(input_dim=8,units=800,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(input_dim=800,units=400,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(input_dim=400,units=1,activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=[BinaryAccuracy()])
model.fit(x_train,y_train,epochs=1000,batch_size=128)
3、对比分析:
1、3层和4层的激活函数的效果基本一样,但是四层更耗时。

2、训练500次和1000次,精度下降,运行时间也减少;训练1000次比训练100次的精确度高0.1左右,运行时间大大缩短,从44s到6s;


3、relu激活函数比softsign激活函数更优,但是也较为耗时。

4、input_dim和units,传入数和批数小,精确度和损失值都会降下来,运行时间也会减少。


4、我的结论:
在数据量不大的情况下,综合考虑运行时间、精度、损失值,我认为,0.81左右的精度足够了,六秒运行时间还在接受范围内。

5、代码如下:
import pandas as pd
import numpy as np
#导入划分数据集函数
from sklearn.model_selection import train_test_split
#读取数据
datafile = 'C:/Users/86188/Desktop/Python数据挖掘与数据分析/My work/data2/bankloan2.xls'#文件路径
data = pd.read_excel(datafile)
x = data.iloc[:,:8]
y = data.iloc[:,8]
#划分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=100)
#导入模型和函数
from keras.models import Sequential
from keras.layers import Dense,Dropout
#导入指标
from keras.metrics import BinaryAccuracy
#导入时间库计时
import time
start_time = time.time()
#-------------------------------------------------------#
model = Sequential()
model.add(Dense(input_dim=8,units=800,activation='relu'))#激活函数relu
model.add(Dropout(0.5))#防止过拟合的掉落函数
model.add(Dense(input_dim=800,units=400,activation

本文介绍了一种使用神经网络和传统机器学习算法建立银行风控模型的方法。通过调整参数,实现了较好的预测效果。文中详细展示了模型训练过程及评估结果。
最低0.47元/天 解锁文章
309

被折叠的 条评论
为什么被折叠?



