985博士论文复现-基于数据挖掘的信用卡个人信用风险评估研究

作者Toby,来源Python风控模型,985博士论文复现-基于数据挖掘的信用卡个人信用风险评估研究
大家好,我是Toby老师今天看到一篇金融风控模型相关的博士论文。虽然时间有点久了,但还是有很多内容值得我们学习。

图片

博士论文-基于数据挖掘的信用卡个人信用风险评估研究

作者:张秋菊 

北京理工大学

北京市211工程院校985工程院校一流大学

摘要
近年来,随着我国经济不断发展,居民收入水平持续提高,购买力越来越强,作为主要支付结算方式之一的信用卡也得到了普遍的推广。与之伴随的是信用卡风险问题不断升级。对信用卡用户进行信用风险评估对银行降低风险、减小损失意义重大。
本研究在回顾国内外目前对于信用卡风险评估的一些研究现状的基础上,分析了信用卡风险的概念和特点、信用卡风险的类型,并比较了个人信用风险评估常用的几种技术方法的优劣点。
然后,针对信用卡申请时的信用风险评估问题,考虑到信用卡申请人递交的申请资料冗余属性多的特点,建立了基于随机森林的属性约简模型。又由于银行在实际处理信用卡申请的过程中,大多产生的是不平衡数据,本研究结合前人的一些数据处理方法,提出了对数据进行再平衡的SMOTE-UNDER方法,并在一些UCI数据集上进行了实验,实验结果表明,本研究提出的方法确实能有效处理不平衡数据的分类问题。
在此基础上,本研究提出了基于GA-SVM的信用卡客户申请人信用风险评估模型。该模型利用遗传算法对SVM的两个重要参数进行优化,能有效提高预测精度。
针对交易阶段的持卡人信用风险细分问题,本研究通过对一般常见的信用风险的类型及其在交易行为上的表现进行分析,提出了相应的风险评估方法。
关键词:信用卡;信用风险;风险管理;数据挖掘;风险评估;逾期还款

专辑:经济与管理科学
专题:金融
DOI:10.26948/d.cnki.gbjlu.2017.000903
分类号:F832.4
导师:李金林
学科专业:管理科学与工程
博士电子期刊出版信息
年期:2021年第07期
网络出版时间:2021-06-16—2021-07-15

文章目录

  • 摘要

  • Abstract

  • 第1章 绪论

  •     1.1 选题背景和意义

  •     1.2 研究内容与主要创新点

  •         1.2.1 研究内容与框架结构

  •         1.2.2 本研究主要创新点

  • 第2章 相关理论与文献综述

  •     2.1 信用卡风险的概念和类型

  •     2.2 国外研究现状

  •         2.2.1 判别分析法在信用风险评估中的研究现状

  •         2.2.2 回归分析在信用风险评估中的研究现状

  •         2.2.3 决策树在信用风险评估中的研究现状

  •         2.2.4 聚类分析在信用风险评估中的研究现状

  •         2.2.5 支持向量机在信用风险评估中的研究现状

  •         2.2.6 线性规划在信用风险评估中的研究现状

  •         2.2.7 人工神经网络在信用风险评估中的研究现状

  •         2.2.8 遗传算法在信用风险评估中的研究现状

  •         2.2.9 专家系统在信用风险评估中的研究现状

  •         2.2.10 混合方法在信用风险评估中的研究现状

  •     2.3 国内研究现状

  •     2.4 文献研究述评

  •     2.5 本章小结

  • 第3章 基于数据挖掘的信用卡申请人个人信用风险评估

  •     3.1 基于数据采样的不平衡数据处理

  •         3.1.1 边界样本的确定

  •         3.1.2 SMOTE-UNDER数据采样方法

  •         3.1.3 SMOTE-UNDER数据采样实例分析

  •     3.2 基于随机森林的属性约简

  •     3.3 基于GA-SVM的信用卡申请人个人信用风险评估模型

  •         3.3.1 GA算法

  •         3.3.2 支持向量机(SVM)

  •         3.3.3 GA-SVM个人信用风险评估模型

  •     3.4 数值实验

  •     3.5 本章小结

  • 第4章 基于持卡人交易行为的客户信用风险水平细分

  •     4.1 信用卡客户信用风险水平细分指标体系的确定

  •     4.2 信用卡客户信用风险水平细分方法

  •         4.2.1 客观聚类分析算法(OCA)

  •         4.2.2 K-means聚类方法

  •         4.2.3 基于密度的聚类方法

  •         4.2.4 改进的客观聚类算法(Improved-OCA)

  •     4.3 数值实验

  •     4.4 本章小结

  • 第5章 信用卡逾期还款信用风险评估

  •     5.1 信用卡客户逾期还款信用风险评估研究方法的确定

  •     5.2 信用卡客户逾期还款信用风险评估两阶段模型的理论基础

  •         5.2.1 BP神经网络相关理论

  •         5.2.2 Adaboost算法相关理论

  •     5.3 信用卡逾期还款两阶段信用风险评估模型算法设计

  •         5.3.1 基于GA-BP-Adaboost的逾期还款分类算法

  •         5.3.2 基于GA-BP-Adaboost的逾期时间预测算法

  •     5.4 数值实验

  •         5.4.1 基于GA-BP-Adaboost的逾期还款分类算法运行结果

  •         5.4.2 基于GA-BP-Adaboost的逾期时间预测算法运行结果

  •     5.5 本章小结

  • 第6章 总结和展望

  •     6.1 本研究解决的主要问题

  •     6.2 未来研究方向展望

  • 参考文献

  • 攻读学位期间发表论文与研究成果清单

  • 致谢

主要技术路线与创新点

环节

关键技术

主要创新

信用卡申请阶段

- 随机森林属性约简
- SMOTE‑UNDER 采样平衡不平衡数据

① 通过随机森林筛选冗余属性,提升模型效率。
② 结合 SMOTE 与下采样的 SMOTE‑UNDER 方法在 UCI 数据集上验证了对不平衡分类的有效性

模型构建

GA‑SVM(遗传算法优化 SVM 参数)

利用遗传算法自动搜索 SVM 的核函数参数和惩罚系数,显著提升预测精度

持卡人交易行为细分

- 客观聚类分析(OCA)
- K‑means
- 基于密度的聚类
- 改进的客观聚类算法(Improved‑OCA)

在 OCA 基础上引入密度聚类思想,设定多个聚类中心,使得聚类形状不受 K‑means 球形限制,最终将持卡人划分为 低‑中‑高 三类风险水平

逾期还款风险两阶段评估

- BP 神经网络
- Adaboost 集成
- GA‑BP‑Adaboost 组合模型

第一期对是否逾期进行分类,第二期预测逾期天数;通过 Adaboost 对多个弱分类/预测器进行加权,克服单一 BP 网络对初始权值敏感、稳定性差的问题

实验验证

  • 在多个公开数据集(包括 UCI 数据)以及某银行内部持卡人数据上进行数值实验,实验结果表明:

    • SMOTE‑UNDER

       能有效提升不平衡数据的分类准确率。

    • GA‑SVM

       在信用卡申请风险预测上优于传统 SVM。

    • Improved‑OCA

       能将持卡人精准划分为三类风险,便于银行制定差异化防范措施。

    • GA‑BP‑Adaboost

       两阶段模型在逾期分类与逾期时间预测上均取得高精度、良好鲁棒性

研究价值

  • 理论层面

    :系统整合了属性约简、样本平衡、进化算法、集成学习等多种数据挖掘技术,为信用卡风险评估提供了完整的技术框架。

  • 实践层面

    :提出的模型能够在银行实际业务中实现 申请前风险筛查、持卡人行为细分、逾期两阶段预警,帮助金融机构实现精细化风控、降低不良资产率。

Adaboost 简介

Adaboost(Adaptive Boosting,自适应增强)是一种集成学习算法,由 Yoav Freund 和 Robert Schapire 在 1995 年提出。它通过组合多个弱学习器(通常是简单的模型,如决策树桩)来构建一个强学习器,从而提高模型的预测性能。Adaboost的核心思想是通过逐步调整样本的权重,使后续的弱学习器更加关注之前模型错误分类的样本,从而逐步提升整体模型的性能。

Adaboost 的工作原理

  1. 初始化样本权重
    在训练开始时,所有训练样本的权重被初始化为相等的值,即每个样本的权重为 N1,其中 N 是样本总数。

  2. 训练弱学习器
    在每一轮迭代中,使用当前的样本权重训练一个弱学习器。弱学习器的目标是找到一个能够最小化加权错误率的简单模型。

  3. 计算弱学习器的权重
    根据弱学习器的错误率 ϵ 计算其权重 α:

    α=21ln(ϵ1−ϵ)

    其中,ϵ 是弱学习器在加权样本上的错误率。

  4. 更新样本权重
    根据弱学习器的预测结果更新样本权重。如果弱学习器正确分类了某个样本,其权重会降低;如果错误分类了某个样本,其权重会增加。更新公式为:

    wi=wi×exp(−αyifi)

    其中,wi 是第 i 个样本的权重,yi 是样本的真实标签,fi 是弱学习器的预测标签。

  5. 归一化样本权重
    将更新后的样本权重归一化,使它们的总和为 1,以便用于下一轮迭代。

  6. 组合弱学习器
    重复上述步骤,直到达到预设的迭代次数或弱学习器的错误率不再下降。最终,将所有弱学习器组合成一个强学习器,每个弱学习器的权重为 α。

导入库

import numpy as npimport pandas as pdfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import AdaBoostClassifierfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.metrics import accuracy_score, classification_report

划分数据,我们重庆未来之智公司用美国运通信用卡逾期数据来复现该项目。

# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

该项目数据量有50GB,属于美国运通信用卡真实业务数据。

图片

构建adaboost模型

# 定义弱学习器
base_estimator = DecisionTreeClassifier(max_depth=1)  # 决策树桩# 初始化 Adaboost 分类器adaboost = AdaBoostClassifier(    base_estimator=base_estimator,    n_estimators=50,  # 弱学习器的数量    learning_rate=1.0,  # 学习率    random_state=42)# 训练模型adaboost.fit(X_train, y_train)

模型验证

# 预测测试集y_pred = adaboost.predict(X_test)# 计算准确率accuracy = accuracy_score(y_test, y_pred)print(f"准确率: {accuracy:.4f}")# 打印分类报告print("分类报告:")print(classification_report(y_test, y_pred))

完整代码

import numpy as npimport pandas as pdfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import AdaBoostClassifierfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.metrics import accuracy_score, classification_report# 生成模拟数据X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=5, random_state=42)# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 定义弱学习器base_estimator = DecisionTreeClassifier(max_depth=1)  # 决策树桩# 初始化 Adaboost 分类器adaboost = AdaBoostClassifier(    base_estimator=base_estimator,    n_estimators=50,  # 弱学习器的数量    learning_rate=1.0,  # 学习率    random_state=42)# 训练模型adaboost.fit(X_train, y_train)# 预测测试集y_pred = adaboost.predict(X_test)# 计算准确率accuracy = accuracy_score(y_test, y_pred)print(f"准确率: {accuracy:.4f}")# 打印分类报告print("分类报告:")print(classification_report(y_test, y_pred))

输出结果

运行上述代码后,你将看到类似以下的输出结果:

准确率: 0.9500分类报告:              precision    recall  f1-score   support
           0       0.96      0.94      0.95       98           1       0.94      0.96      0.95      102
    accuracy                           0.95      200   macro avg       0.95      0.95      0.95      200weighted avg       0.95      0.95      0.95      200

这个简单的示例展示了如何使用 sklearn 的 AdaBoostClassifier 构建和评估一个 Adaboost 模型。

Toby老师文章点评 

1.K-means聚类方法评估信用卡客户信用风险水平细分属于经典非监督学习方法,但实际效果不一定好,有算法优化空间。作者用改进的客观聚类算法(Improved-OCA)值得大家学习。

2.GA-SVM(遗传算法支持向量机)是一种结合了遗传算法(Genetic Algorithm, GA)和支持向量机(Support Vector Machine, SVM)的优化算法。它通过遗传算法优化SVM的参数,从而提高模型的分类和回归能力。但银行信用卡数据量非常大,SVM算法只实用于小样本数据,数据量太大,SVM模型跑不动。Toby老师建议信用卡数据考虑集成树算法。

3.GA-BP-Adaboost 是一种结合了遗传算法(GA)、反向传播神经网络(BP)和自适应增强(Adaboost)的集成学习算法。该算法旨在通过遗传算法优化BP神经网络的参数,再利用Adaboost算法将多个优化后的BP神经网络组合成一个强分类器,从而提高模型的预测性能。单从adaboost来看,模型性能不是最佳,通过GA-BP-Adaboost 改进,我们可以实验优化后算法是否带来改进,至少从论文角度是个创新。

4.SMOTE-UNDER是一种结合了过采样(SMOTE)和欠采样(Under-sampling)的数据处理方法,主要用于处理不平衡数据集。这种方法通过在少数类样本中生成新的合成样本(过采样),同时减少多数类样本的数量(欠采样),从而平衡数据集。SMOTE改良算法有很多,大家可以去看我之前发布相关文章。

imbalanced data机器学习非平衡数据处理

Python非平衡数据处理_SMOTE-ENN 方法

非平衡数据处理ADASYN-基于自适应性的过采样方法

非平衡数据处理SMOTE的改良算法-borderline SMOTE, ADASYN

非平衡数据处理-Tomek link算法

《Borderline-SMOTE算法论文文献》

版权声明:文章来自公众号(python风控模型),未经许可,不得抄袭。遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值