银行风控模型
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次的结果:
混淆矩阵: