深度学习实战2-(keras框架)企业信用评级与预测

人工智能人工智能与算法

大家好,我是微学AI,深度学习框架如果仔细研究,其实难度没有想象中的那么大,今天我给大家带来一个深度学习框架keras简单的实战项目:企业信用评级与预测。

picture.image


企业信用评级目前是一个完整的体系,包括信用评级的要素和指标、信用评级的等级和标准、信用评级的方法和模型等方面的内容。信用评级指标是根据企业的各个指标进行综合评分,这里涉及的指标维度较多,今天我们来做一个简单的信用评级模型,抽象了几个标准化的数据指标,下面是详细流程:

一、引入库包

import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
import matplotlib .pyplot as plt
import pandas as pd
import csv

二、导入数据

data = pd.read_csv('train_new.csv',encoding = 'utf-8')

数据模型如下表:

picture.image

 三、数据预处理

#提取数据特性x1,x2,x3,x4,作为训练集
train = data[['x1','x2','x3','x4']]

#设置标签值  one-hot编码
y_train= np.zeros((len(data),5),dtype = np.int)
for i in range(len(data)):
    y_train[i][data['class'][i]]=1
print(np.array(y_train))

数据中"class"字段中0表示"A"级别,1表示"B"级别,2表示"C"级别,3表示"D"级别,4表示"E"级别.

以上数据进行了one-hot 编码,one-hot 编码类似于虚拟变量(dummy variables),是一种将分类变量转换为几个二进制列的方法。其中 1 代表某个输入属于该类别。

四、构建神经网络模型

model=Sequential()
model.add(Dense(input_dim=4,units=666,activation='relu'))
model.add(Dropout(0.5))  # Dropout(0.5) 表示随机丢弃50%的神经元,防止过拟合
model.add(Dense(units=666,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(units=666,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(units=5,activation='softmax')) #输出层 输出5个等级结果

五、训练模型

model.compile(loss='mse',optimizer='adam',metrics=['acc'])
history = model.fit(train,y_train,batch_size=123,epochs=500,validation_split=0.2) #训练500次

六、模型评估

weights = np.array(model.get_weights())
result2=model.evaluate(train,y_train)

#绘制图形函数
def show_train_history(history,train,validation):
    plt.plot(history.history[train])
    plt.plot(history.history[validation])
    plt.title('Train History')
    plt.ylabel(train)
    plt.xlabel('Epoch')
    plt.legend(['train','validation'],loc='upper left')
    plt.show()

七、验证集与测试集检验

训练历史图像

show_train_history(history,'acc','val_acc')

picture.image

损失函数图像

show_train_history(history,'loss','val_loss')

picture.image

训练结果:[0.039951469749212265, 0.8893280625343323]

损失值 loss: 0.03995,准确率 acc: 0.8893

八、测试集检验结果

with open('test.csv', encoding='utf-8-sig') as f:
    reader = csv.reader(f)
    for j in reader:
        test.append(list(map(float,j)))
    test1=np.array(test)
    # print(np.shape(BB))

pre=model.predict(test1)
print(pre)

预测结果基本满足项目要求,待读可以自己训练次数多于500,准确率可能会继续提升。

获取数据集,请私信我,更多实战内容请关注我,谢谢。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论