Skip to content

lihanghang/Enterprise_Credit_Analysis

Repository files navigation

Enterprise_Credit_Analysis(仅作为交流学习使用!)

   一个集企业信息查询、数据分析、推理、评估、预测企业信用可视化分析平台 下阶段会基于知识图谱、机器学习算法、深度神经网络进行风险评估及关联关系推理

第一阶段研发工作【170901--180601】

平台架构

  1. 系统架构主要分为:企业信息查询模块、智能分析模块、系统后台模块、企业关系分析模块
  2. 智能推理系统--总体功能图 总体功能图

企业信息查询模块

  1. 用户登录、注册
  2. 基本信息查询

智能分析模块

  1. 基于DEA科研投入推荐模型实现.【后台通过MATLAB进行计算,Java调用模型在系统使用】
  2. 基于决策树实现企业信用等级评估模型.通过四分位图直观展示企业指标是否异常及处于行业水平位置。利用ANN网络进行评级。
  3. 三大行业动态预测【全国房地产、汽车、软件信息服务业相关指数及可视化】
  4. 基于DEA的企业风险模型,从财务风险、经营风险、技术风险、战略风险四维一级指标进行刻画。
  5. 贷后预警模型
第二阶段研发工作【180613--180830】

基于深度学习的金融分析

  1. 基于深度神经网络进行分析预测。
  2. 利用CNN、LSTM等神经网络进行分类和预测。
  3. 截止目前已实现企业信用评级、行业动态预测、企业风险评估的算法实现,基于TensorFlow深度学习框架,主要设计CNN、LSTM、VGG等模型。
  4. 已实现测试通过TensorFlow保存CNN(卷积神经网络、LSTM(长短期记忆网络)等训练模型pb文件,经Java调用,供Web端调用,测试实现代码。
  5. 实现企业信用评估CNN模型pb文件的Java Web端的使用。利用Jfinal的上传文件接口在前端上传测试数据.csv文件,后台接收后读取数据并使用模型进行预测并返回评级结果。参考代码--613行左右处可见
  6. 五大TFModel全部调用过程封装代码查看.根据项目进度不
  7. 实现基于LSTM模型的Java调用。
  8. ……………………………………
第三阶段研发工作【18-09-01--18-11-01】

总体目标:基于第二阶段研发工作,在神经网络算法中加入“记忆模块”、“注意力机制”等;企业知识图谱核心技术突破及初步实现。

  1. 舆情数据情感分析;
  2. 科研投入模型加入记忆力模块,实现基于TensorFlow的科研投入模型训练并保存,现已集成到JavaWeb系统中,可在线实时进行科研投入能力的分析与预测;
  3. 信用评级模型卷积神经网络加入注意力机制。
  4. …………………………

企业知识图谱模块

  1. 基于RDF构建企业信息知识库
  2. 使用SPARQL、Jena进行RDF的相关操作。
  3. 数据存储包含传统关系数据库及RDF图数据库
  4. 企业基本信息展示及与其他企业关系、任务关系等

系统后台模块(本项目为非重点功能)

  1. 登录、注册 
  2. 增加后台对用户、管理员管理
  3. 数据上传接口
  4. 用户权限管理  

系统局部展示

首页

系统首页


问题记录

  1. 远程代码至temp:git fetch origin master:temp
  2. 地代码进行比较: git diff temp
  3. 地代码合并:git merge temp
  4. 本地 temp分支(可选):git branch -d temp
  5. 通过java调用MATLAB,进行复杂数据计算和相关算法实现。
  6. 更新本地仓库代码:git pull.
  7. 删除分支:git push origin : branch_name(您需要删除的分支名)。
  8. java调用MATLAB封装的函数及神经网络函数。
  9. MATLAB 编译为jar文件,供java使用,对于复杂的数据处理过程可以采用此思路,可迅速解决问题。但 可能在速度方面有可能不佳。
  10. 当用java调用TensorFlow 训练的模型文件pb时,可能在输入数据需要归一化或标准化处理,这是我们可以考虑 使用MATLAB先做一个处理过程的封装。
  11. 使用基于Conda的Jupyter进行模型行训练时出现kernel dead error时,可在环境中执行conda install mkl命令,可解决问题。
  12. 记录一个issue:对于实际应用场景,如何使模型根据线上实时数据进行参数的动态调整,以便更好提供预测服务功能。目前的模型都是通过历史数据训练好模型后直接保存,提供预测功能。其缺点显然是不能满足实际需求,至少能够达到周期性模型参数优化。

  1. 如何将含有在Windows下使用MATLAB编译的jar包系统部署到ubuntu16.04服务器。【这个过程太艰辛……………………】

  1. 根据MATLAB版本下载MCR(一个可以运行matlab编译后的jar包的环境)的linux版本。
  2. 在服务中解压,安装。命令:sudo ./install -mode silent -agreeToLicense yes使用静默安装。
  3. 配置环境变量LD_LIBRARY_PATH在.bashrc文件中(注:当上一步安装完成后会有添加的地址提示)
  4. 完成,即可运行编译的jar包。至此,为系统的jar包提供了必要的运行环境。
  5. 在实践过程可能会存在其他问题,多查,多看,多分析问题(日志等信息起到事半功倍的作用,要善于利用)。

编码规范

  1. 使用CheckStyle代码规约工具,帮助自己编写符合标准的Java代码

知识点

  1.  L2范数,又叫“岭回归”(Ridge Regression)、“权值衰减”(weight decay)。它的作用是改善过拟合。过拟合是:模型训练时候的误差很小,但是测试误差很大,也就是说模型复杂到可以拟合到所有训练数据,但在预测新的数据的时候,结果很差。 L2范数是指向量中各元素的平方和然后开根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。