# Hadoop信贷风险评估可视化分析预测系统 **Repository Path**: guangduan/Hadoop-Machine-Learning-Credit-Risk-Assessment-Visual-Analysis-and-Prediction-System ## Basic Information - **Project Name**: Hadoop信贷风险评估可视化分析预测系统 - **Description**: Hadoop机器学习信贷风险评估可视化分析预测系统基于Java 语言,融合了Hadoop,spark,hive大数据处理技术、Spring Boot 框架以及 MySQL 数据库,结合机器学习算法随机森林回归,数据分析数据清洗等功能。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-20 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: Hadoop-spark-hive, Springboot-vue-mysql, 机器学习, 随机森林回归, 数据分析可视化 ## README ## 基于Hadoop信贷风险评估预测数据可视化分析系统 ## 基于机器学习的信贷风险评估预测可视化分析系统** ## 前言介绍 随着社会经济的快速发展,信贷业务规模不断扩大,信贷风险评估的重要性日益凸显。我们开发了一套信贷风险评估的数据可视化分析与预测系统。系统基于 Java 语言,融合了 Hadoop 大数据处理技术、Spring Boot 框架以及 MySQL 数据库,结合机器学习算法随机森林回归,数据分析数据清洗等功能。系统首页为用户提供清晰的导航与概览,个人中心方便用户管理个人信息与操作记录。 用户模块实现对客户信息的精准录入与管理,风控专员模块助力专业人员高效开展风险评估工作。贷款信息模块详细记录每一笔贷款的全生命周期数据,贷款申请模块则为客户提供便捷的申请流程。信用评估模块通过先进的算法对客户信用进行精准打分,信贷数据模块对海量信贷数据进行深度挖掘与可视化分析,帮助决策者快速洞察风险趋势。轮播图管理模块则用于展示重要信息与风险提示。该系统通过技术与业务的深度融合,为信贷风险防控提供了有力支持,助力金融机构稳健发展。 ## 01开发环境 1.1 Java 技术 1.2 Spring Boot 框架 1.3 Hadoop,spark,hive 1.4 MySQL数据库 1.5 B/S 结构 1.6 Vue.js 技术 1.7 机器学习:随机森林回归算法 ## 02系统功能亮点 **亮点(机器学习(随机森林)、数据清洗,数据导入导出,数据预测、Echarts可视化)** 1、数据管理:后台信息列表管理。 2、数据存储:mysql数据库。 3、可视化分析:各种数据分析统计后图表大屏展示 4、贷款分析预测:根据贷款人各项信息分析预测。 5、数据分析:根据hadoop大数据技术进行数据分析 ## 03图片展示 ![输入图片说明](00.png) ![输入图片说明](01.png) ![输入图片说明](02.png) ![输入图片说明](03.png) ![输入图片说明](04.png) ![输入图片说明](05.png) ![输入图片说明](06.png) ![输入图片说明](07.png) ![输入图片说明](08.png) ![输入图片说明](09.png) ![输入图片说明](010.png) ## 04部分代码展示 ```java /** * 交流学习vx18484646674 * 随机森林预测 */ private Map forecastRes(Instances instances, Map params, String[] eigenValueArr, String[] targetValueArr) throws Exception { Map forecastRes = new HashMap<>(); // 预测结果 // 创建一个与训练数据集结构相同的 Instance double[] instanceValue = new double[instances.numAttributes()]; int x = 0; for (String attr : eigenValueArr) { if (instances.attribute(attr).isNominal()) { // 对于名义属性,使用indexOfValue double res = instances.attribute(attr).indexOfValue(params.get(attr).toString()); instanceValue[x++] = res == -1 ? instances.attribute(attr).indexOfValue("unknown") : res; // 如果值不存在,使用Double.NaN } else { // 对于数值属性,直接使用数值 instanceValue[x++] = Double.parseDouble(params.get(attr).toString()); } } for (String attr : targetValueArr) { instanceValue[x++] = Double.NaN; } Instance instance = new DenseInstance(1.0, instanceValue); instance.setDataset(instances); for (int i = 0; i < targetValueArr.length; i++) { // 设置类属性索引为当前目标属性 instances.setClassIndex(instances.numAttributes() - targetValueArr.length + i); // 创建并训练随机森林模型 RandomForest randomForest = new RandomForest(); randomForest.buildClassifier(instances); // 为预测创建一个新的实例 double[] instanceValueForPrediction = Arrays.copyOf(instanceValue, instanceValue.length); instanceValueForPrediction[instances.numAttributes() - targetValueArr.length + i] = Double.NaN; // 设置目标属性为缺失值 Instance instanceForPrediction = new DenseInstance(1.0, instanceValueForPrediction); instanceForPrediction.setDataset(instances); // 进行预测 double predictedValue = randomForest.classifyInstance(instanceForPrediction); if (instances.classAttribute().isNominal()) { // 如果是名义属性,获取预测的类别名称 String predictedClassName = instances.classAttribute().value((int) predictedValue); forecastRes.put(targetValueArr[i], predictedClassName); } else { // 如果是数值属性,直接使用预测值 DecimalFormat df = new DecimalFormat("#.00"); double formattedPredictedValue = Double.parseDouble(df.format(predictedValue)); forecastRes.put(targetValueArr[i], formattedPredictedValue); } } return forecastRes; } ```