银行风控模型
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
filename = 'E:/python代码/data/bankloan.xls'
data = pd.read_excel(filename)
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, Activation
from keras.metrics import BinaryAccuracy
import time
start_time = time.time()
model = Sequential()
model.add(Dropout(0.5))
model.add(Dense(input_dim=800,units=400))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(input_dim=400,units=1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=[BinaryAccuracy()])
model.fit(x_train,y_train,epochs=1000,batch_size=128)
loss,binary_accuracy = model.evaluate(x,y,batch_size=128)
print('模型损失值:{}'.format(loss))
print('模型精度:{}'.format(binary_accuracy))
predict_x=model.predict(x)
yp=np.argmax(predict_x,axis=1)
from cm_plot import *
cm_plot(y,yp).show()
混淆矩阵代码如下:
def cm_plot(y, yp):
from sklearn.metrics import confusion_matrix #导入混淆矩阵函数
cm = confusion_matrix(y, yp) #混淆矩阵
import matplotlib.pyplot as plt #导入作图库
plt.matshow(cm, cmap=plt.cm.Greens) #画混淆矩阵图,配色风格使用cm.Greens,更多风格请参考官网。
plt.colorbar() #颜色标签
for x in range(len(cm)): #数据标签
for y in range(len(cm)):
plt.annotate(cm[x,y], xy=(x, y), horizontalalignment='center', verticalalignment='center')
plt.ylabel('True label') #坐标轴标签
plt.xlabel('Predicted label') #坐标轴标签
return plt
训练1000次的结果:

混淆矩阵:


浙公网安备 33010602011771号