一、功能与要求
1****、实现功能
(1)使用Spark SQL对原始数据集进行数据预处理
(2)使用Spark SQL对预处理后的数据进行分析和统计
(3)通过使用echarts.js组件将进行分析后的数据展示到前端页面中
2****、项目要求
(1)项目中需要包含数据获取、数据清洗、数据分析统计、数据可视化看板展示等功能;
(2)使用工具:Visual Studio Code
使用技术:python语言,spark
3****、提交作品
项目设计报告、项目源程序(项目工程目录及相关资源文件)、项目演示录屏。
4****、项目组各成员工作分工
项目名称
成员
实现功能
信用卡逾期数据分析
与可视化项目
数据分析
数据可视化
数据采集
数据预处理
5****、对题目的分析与理解
信用卡逾期问题一直是金融行业和个人信用管理中备受关注的议题。逾期情况不仅影响个人信用评级,还可能对金融机构的风险管理产生重大影响。了解逾期情况,尤其是分析导致逾期的因素,可以帮助金融机构更好地了解客户行为,改善信贷政策,降低不良贷款率,提高金融服务的质量。
本项目的目的在于分析信用卡逾期的情况,探究逾期和各种因素之间的关联,为金融机构提供洞见。具体目标包括:
- 年龄与逾期关系分析: 探究不同年龄段的人群中逾期率的变化,了解不同年龄层次的信用还款情况,为定向制定信贷政策提供依据。
- 逾期记录与逾期关系分析: 分析有逾期记录的人中,30-59天逾期和60-89天逾期的比例,深入了解逾期人群中短期和长期逾期的情况。
- 房产抵押与逾期关系分析: 探究有无房产抵押的人中逾期率的差异,了解房产抵押与信用还款情况的关系,为信贷政策的制定提供数据支持。
- 家属人数与逾期关系分析: 分析有无家属的人中逾期率的比例,探究家庭结构对逾期情况的影响,为个性化信贷服务提供依据。
- 月收入与逾期关系分析: 比较超过均值月收入和低于均值月收入人群的逾期情况,了解月收入对信用还款的影响,为信贷额度的确定提供数据支持。
二、方案设计
(一)系统总体设计
(1)系统总体架构设计
(2)系统模块设计
data_preprocessing.py:数据预处理模块
data_analysis.py:数据分析模块
data_web.py:数据可视化模块
字段名称
字段含义
SeriousDlqin2yrs
是否逾期
RevolvingUtilizationOfUnsecuredLines
信用卡和个人信贷额度的总余额
Age
年龄
NumberOfTime30-59DaysPastDueNotWorse
借款人逾期30-59天的次数
DebtRatio
负债比率
MonthlyIncome
月收入
NumberOfOpenCreditLinesAndLoans
未偿还贷款数量
NumberOfTimes90DaysLate
借款人逾期90天以上的次数
NumberRealEstateLoansOrLines
房地产贷款的数量
NumberOfTime60-89DaysPastDueNotWorse
借款人逾期60-89天的次数
NumberOfDependents
家庭中的家属人数
三、项目的实现
1****、系统开发环境
Linux: Ubuntu 22.04.3
Hadoop3.1.3
Python:3.6
Spark:2.4.0
Jupyter Notebook
Pyecharts
2****、各模块功能实现
(1)年龄与是否逾期情况分析
共有逾期10026人,139974没有逾期,总人数150000
total_y = []
for i in range(2):
total_y.append(df.filter(df['y'] == i).count())
all_list.append(total_y)
# 年龄分析
df_age = df.select(df['age'],df['y'])
agenum = []
bin = [0,30,45,60,75,100]
# 统计各个年龄段的人口
for i in range(5):
agenum.append(df_age.filter(df['age'].between(bin[i],bin[i+1])).count())
all_list.append(agenum)
# 统计各个年龄段逾期与不逾期的数量
age_y = []
for i in range(5):
y0 = df_age.filter(df['age'].between(bin[i],bin[i+1])).\
filter(df['y']=='0').count()
y1 = df_age.filter(df['age'].between(bin[i],bin[i+1])).\
filter(df['y']=='1').count()
age_y.append([y0,y1])
all_list.append(age_y)
源码及详细文章获取请添加下方名片
版权归原作者 码力源 所有, 如有侵权,请联系我们删除。