# Based ESC **Repository Path**: yin-lixin/ESC ## Basic Information - **Project Name**: Based ESC - **Description**: 基于ESC融合模型的个人信贷违约预测 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2022-09-18 - **Last Updated**: 2024-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Based ESC ## 项目简介 ​ 本项目主要实现**自动高阶特征交叉**和**自动特征赋权**的**个人信贷违约预测模型**, ​ 通过个人信贷违约模型的高阶**特征交叉自动化**,模型自动学习客户特征交互关系,**拓展**模型学习信贷数据的潜在**广度**,克服人工特征工程的局限性;通过最后个人信贷违约模型的**自动特征赋权**,模型自动区分特征的重要性,**提升**模型学习信贷数据的潜在**深度**,**捕捉**违约客户的**关键特征**,将两者有机结合来实现**模型预测准确性**的**提高**。 ​ 模型使用**深宽模型(Wide&Deep)**结构,由**自注意力机制(Self-Attention)**+**交叉网络(CN)**构成。通过**高阶特征交叉**与**隐式交互**相结合,使得信用评分模型能够很好学习交互特征与客户违约的关系,最终实现模型预测准确性的提高。基于公开信贷的数据集,SACN融合模型优于其他主流的信贷违约预测模型,能够有效提高信贷违约的判断性能,兼具准确性和稳定性。 ## 环境设置 `torch==1.10.1` `numpy==1.21.5` `pandas==1.2.4` `sklearn==1.0.2` 该代码在`windows10`系统下使用`python 3.8`和`cuda10.1`进行训练 ## 模型运行 模型训练请运行`SACN.pytorch/mian.py` `SACN.pytorch/DT_*.py`为使用决策树分箱的特征工程流程代码 `SACN.pytorch/Chi_*.py`为使用卡方分箱的特征工程流程代码 **Gvie Me Some Credit数据集**划分数据集和特征工程流程请运行`DT_GMSC.py`或`Chi_GMSC.py` **UCI_Credit_Card数据集**划分数据集和特征工程流程请运行`DT_UCI.py`或`Chi_UCI.py` ### 数据集选择 ``` parser.add_argument('--user_train', default="data/user_train.csv") # 训练集 parser.add_argument('--user_test', default="data/user_test.csv") # 测试集 ``` ### 训练设备选择 ``` parser.add_argument('--train_dir', default="cuda") parser.add_argument('--device', default='cuda', type=str) # GPU训练 ``` ### 模型选择 ``` parser.add_argument('--FMmode',default="CrossNet",type=str) # ['FM','AFM',"None","CrossNet","CIN"] 交叉层切换 ``` ## 对比模型 内含由于对比模型性能的XGboost\SVM\LR的模型文件 ## 参考 LR/SVM/XGboost:采用`sklearn`建构 Wide&Deep:https://doi.org/10.1145/2988450.2988454 Attention-FM:https://doi.org/10.1109/ICDMW51313.2020.00056 DCN:https://arxiv.org/pdf/1708.05123.pdf