system: [SYSTEM]

user: 3. 实验过程 3.1. 数据描述 本文使用Kaggle提供的default of credit clients数据集，包括某银行(现金及信用卡发行)的信用卡持卡人的个人信息和用户信用卡消费还款信息。该数据集共有3万条数据和24个属性，具体地，包括23个特征描述属性和1个目标属性(次月是否违约)。具体信息如下表1所示。 Table 1 Introduction of data attribute 属性 说明 取值 ID 编号 1， 2， …， 30，000 LIMIT_BAL 授信金额 [10，000， 1，000，000] SEX 性别 1， 2 EDUCATION 教育 0， 1， 2， 3， 4， 5， 6 MARRIAGE 婚姻 0， 1， 2， 3 AGE 年龄 21， …，79 PAY_0 9月的还款情况 −2， −1， 0， 1， …， 8 …… …… …… PAY_6 4月的还款情况 −2， −1， 0， 1， …， 8 BILL_AMT1 9月账单数额 [−165，580， 964，511] …… …… …… BILL_AMT6 4月账单数额 [−339，603， 961，664] PAY_AMT1 9月以前的付款金额 [0， 873，552] …… …… …… PAY_AMT6 4月以前的付款金额 [0， 528，666] Default.Payment.Next.Month 下个月是否支付 0， 1 表1. 数据属性介绍 3.2. 数据预处理 原始数据中往往含有很多噪声数据，为了提高数据质量，需要对原始数据进行数据预处理。本文的数据预处理阶段主要包括数据清洗、特征处理、样本均衡和特征选择四个部分。 1) 数据清洗 在查看数据集属性取值和分布情况的基础上，针对教育(EDUCATION)、婚姻(MARRIAGE)和n月的还款情况(PAY_n)这三类属性进行数据清洗。EDUCATION、MARRIAGE和PAY_n均包含未知取值且未知取值在每个属性中占比较小，故而将部分未知取值合并到合理的已知取值中。例如：EDUCATION有7类取值，其中，取值为0、取值为5和取值为6表示的含义未知且占比很低，故将这三个类取值归并到取值4 (其他)中。 2) 特征处理 由于不同模型对输入数据的要求不同，故需要对原始数据进行特征处理以适应模型的需求。特征处理阶段主要包括特征编码和数据标准化两个部分。特征编码是针对数据集中的离散型变量进行独热(one-hot)编码。数据标准化是针对连续型变量进行区间缩放标准化，将取值范围缩放到0~1之间。 3) 样本均衡 原始数据集中未违约客户(取值为0)的人数远高于违约客户(取值为1)的人数，属于样本不均衡数据集。为了避免样本不均衡对模型的性能产生影响，本文采用SMOTE过采样算法为未违约类合成新样本，从而实现样本均衡。样本均衡前后数据集的数据分布情况如表2所示。 Table 2 Data distribution before and after oversamplin 阶段 类分布情况 SMOTE过采样前 0:0.7788 1:0.2212 SMOTE过采样后 0:0.5 1:0.5 表2. 过采样前后数据分布情况 4) 特征选择 本文采用包裹式特征选择和过滤式特征选择两种方式来探索不同的特征对于模型性能的影响。包裹式特征选择是以机器学习模型和评测性能的指标作为特征选择的准则，每次对若干特征进行筛选。过滤式特征选择是以每个特征和结果的相关性作为评估指标对若干特征进行筛选，最终保留相关性最强的几个特征。 3.3. 研究方法 由于银行信用卡持卡人的违约情况通常包括未违约和违约两类，因此，银行信用卡违约预测可以定义为一个二分类任务。本文拟采用机器学习中监督学习的方式在训练集上训练模型并在测试集上检验模型的性能。下面具体介绍本文使用的分类模型： 1) 逻辑回归模型 逻辑回归模型(Logistic Regression)是常见的机器学习模型，多用于二分类任务。逻辑回归模型首先通过对多元线性回归进行非线性变换得到所需的分类函数，进而通过构建损失函数来表示预测的输出类别与训练数据的实际类别之间的偏差。之后，通过最小化损失函数获取模型的最优参数。具体公式如公式(1)、(2)所示： h θ ( x ( i ) ) = sigmoid ( θ 0 + θ 1 X 1 ( i ) + θ 2 X 2 ( i ) + ⋯ + θ n X n ( i ) ) (1) J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] (2) 其中， h θ ( x ( i ) ) 表示分类函数， J ( θ ) 表示损失函数， X 1 ( i ) 表示第i个样本的第一个特征， θ n 表示第n个特征的特征权重。 2) 决策树模型 决策树模型 [ 10 ] (Decision Tree)是通过一系列规则对数据进行分类的模型，主要包括ID3、C4.5和CART三种基本方法。本文采用CART决策树来构建信用卡违约预测模型。CART决策树以基尼系数作为分类标准，通过基尼系数选择最优特征并决定特征的最优二值切分点。基尼系数越大，样本集合的纯度越低。假设给定样本集合D，基尼系数的公式如公式(3)所示： Gini ( D ) = 1 − ∑ k = 1 K ( | C k | | D | ) 2 (3) 其中， C k 表示样本集合D中属于第k类的样本子集。 3) 随机森林模型 随机森林模型 [ 11 ] (Random Forest)是集成学习中基于自助聚集策略(Bagging)的典型代表模型，被广泛应用于各种分类任务。随机森林模型是指集合多个决策树对数据集进行训练并预测的分类模型。具体而言，随机森林模型首先通过有放回的方式从原始样本中进行n次随机采样得到n个决策树训练所需的样本集。之后，独立训练每个决策树。在此基础上，通过一定的集合策略得到样本最终的输出结果，其中，集合策略主要包括两类方法：加权平均法和投票法。 4) 自适应增强模型 自适应增强模型 [ 12 ] (AdaBoost)是集成学习中基于提升策略(Boosting)的代表模型之一。自适应增强模型基于相同的训练集训练得到不同的弱学习器，进而集合多个弱分类器得到所需的强分类器。在迭代训练过程中，自适应增强模型通过调整样本和弱分类器的权重筛选权值系数最小的弱分类器组合成一个强分类器。 5) 梯度提升树模型 梯度提升树模型 [ 13 ] (GBDT)是集成学习中基于提升策略(Boosting)的代表模型之一，被广泛应用于分类任务中，展现了良好的性能。梯度提升树模型采用CART决策树作为基分类器，通过Gradient Boosting对基分类器进行集成学习。在迭代训练过程中，梯度提升树将每轮迭代训练产生的弱分类器在上一轮分类器的残差基础上不断训练，以逼近真实值。 3.4. 评价指标 本文采用准确率(Accuracy)和受试者工作特征曲线下的面积(AUC)作为模型的评价指标。在机器学习模型的性能度量中，准确率是常见的评价指标，被广泛用于度量二分类或多分类任务模型的性能。准确率是指预测正确的样本数占总样本数的比例，通常而言，准确率越高，模型的性能越好。准确率的具体公式如公式(4)所示： Accuracy = TP + TN TP + TN + FP + FN (4) 其中，TP (True Positive)代表将正类预测为正类的个数，TN (True Negative)代表将负类预测为负类的个数，FN (False Negative)代表将正类预测为负类的个数，FP (False Positive)代表将负类预测为正类的个数。 AUC是指横纵坐标分别为假正率(FPR)和真正率(TPR)的ROC曲线下方的面积，表示模型预测的正类排在负类前面的概率。AUC是衡量二分类任务中模型性能优劣的评价指标之一。AUC值的大小与模型的性能优劣呈正相关，即AUC值越大，模型的性能越优。一般而言，AUC值通常大于0.5，若小于0.5，则代表模型预测效果与随机猜想的效果相同。