银行风控模型

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次的结果:

 

混淆矩阵:

 

posted @ 2022-03-30 10:48  Judy-dd  阅读(133)  评论(0编辑  收藏  举报