毕业设计项目 python金融大数据分析与可视化


0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 金融大数据分析与可视化

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 选题指导, 项目分享:见文末

1 金融风控

  • 一.题目理解
    • 1.1.题目概况
    • 1.2数据概况
    • 1.3预测指标
  • 二.数据来源
  • 三.查看数据
  • 四.分类指标计算示例
    • 4.1混淆矩阵
    • 4.2准确度
    • 4.3precision(精确度),recall(召回率),f1-score
    • 4.4P-R曲线
    • 4.5ROC曲线
    • 4.6AUC曲线
    • 4.7KS值
  • 五.数据分析
    • 5.1基本信息
    • 5.2查看数据集中特征缺失值,唯一值等
    • 5.3查看特征的数值类型有哪些,对象类型有哪些
      • 5.3.1数值连续型变量分析
      • 5.3.2非数值类别型变量分析
      • 5.3.3总结:
    • 5.4变量分布可视化
      • 5.4.1单一变量分布可视化
      • 5.4.2根绝y值不同可视化x某个特征的分布
      • 5.4.3时间格式数据处理及查看
      • 5.4.4掌握透视图可以让我们更好的了解数据
      • 5.4.5用pandas_profiling生成数据报告
      • 5.4.6总结
  • 六.特征工程
    • 6.1导入包并读取数据
    • 6.2数据预处理
    • 6.2缺失值填充
    • 6.3时间格式处理
    • 6.4类别特征处理
      • 6.5异常值处理
      • 6.6数据分桶
      • 6.7特征编码
      • 6.8特征选择

一.题目理解

1.1.题目概况

该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B,同时会对employmentTitle、purpose、postCode和title等信息进行脱敏。

1.2数据概况

一般而言,对于数据在比赛界面都有对应的数据概况介绍(匿名特征除外),说明列的性质特征。了解列的性质会有助于我们对于数据的理解和后续分析。
Tip:匿名特征,就是未告知数据列所属的性质的特征列。

train.csv

id 为贷款清单分配的唯一信用证标识

loanAmnt 贷款金额

term 贷款期限(year)

interestRate 贷款利率

installment 分期付款金额

grade 贷款等级

subGrade 贷款等级之子级

employmentTitle 就业职称

employmentLength 就业年限(年)

homeOwnership 借款人在登记时提供的房屋所有权状况

annualIncome 年收入

verificationStatus 验证状态

issueDate 贷款发放的月份

purpose 借款人在贷款申请时的贷款用途类别

postCode 借款人在贷款申请中提供的邮政编码的前3位数字

regionCode 地区编码

dti 债务收入比

delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数

ficoRangeLow 借款人在贷款发放时的fico所属的下限范围

ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围

openAcc 借款人信用档案中未结信用额度的数量

pubRec 贬损公共记录的数量

pubRecBankruptcies 公开记录清除的数量

revolBal 信贷周转余额合计

revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额

totalAcc 借款人信用档案中当前的信用额度总数

initialListStatus 贷款的初始列表状态

applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请

earliesCreditLine 借款人最早报告的信用额度开立的月份

title 借款人提供的贷款名称

policyCode 公开可用的策略代码=1新产品不公开可用的策略代码=2

n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理

1.3预测指标

竞赛采用AUC作为评价指标。AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积。

分类算法常见的评估指标如下:
1、混淆矩阵(Confuse Matrix)

(1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
(2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
(3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
(4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )
2、准确率(Accuracy) 准确率是常用的一个评价指标,但是不适合样本不均衡的情况。

在这里插入图片描述

在这里插入图片描述

8、AUC(Area Under Curve) AUC(Area Under Curve)被定义为 ROC曲线
下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。

对于金融风控预测类常见的评估指标如下:
1、KS(Kolmogorov-Smirnov) KS统计量由两位苏联数学家A.N. Kolmogorov和N.V.
Smirnov提出。在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强。
K-S曲线与ROC曲线类似,不同在于

ROC曲线将真正例率和假正例率作为横纵轴
K-S曲线将真正例率和假正例率都作为纵轴,横轴则由选定的阈值来充当。 公式如下:
在这里插入图片描述
在这里插入图片描述

三.查看数据

train = pd.read_csv('train.csv')
testA = pd.read_csv('testA.csv')
print('Train data shape:',train.shape)
print('TestA data shape:',testA.shape)
train.head()

Train data shape: (800000, 47)
TestA data shape: (200000, 46)

在这里插入图片描述

四.分类指标计算示例

4.1混淆矩阵

## 混淆矩阵
import numpy as np
from sklearn.metrics import confusion_matrix
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('混淆矩阵:\n',confusion_matrix(y_true, y_pred))

在这里插入图片描述

4.2准确度

## accuracy
from sklearn.metrics import accuracy_score
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('ACC:',accuracy_score(y_true, y_pred))

ACC: 0.5

4.3precision(精确度),recall(召回率),f1-score

## Precision,Recall,F1-score
from sklearn import metrics
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('Precision',metrics.precision_score(y_true, y_pred))
print('Recall',metrics.recall_score(y_true, y_pred))
print('F1-score:',metrics.f1_score(y_true, y_pred))

Precision 0.5

Recall 0.5

F1-score: 0.5

4.4P-R曲线

## P-R曲线
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve
y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1]
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1]
precision, recall, thresholds = precision_recall_curve(y_true, y_pred)
plt.plot(precision, recall)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值