system: [SYSTEM]

user: 4. 实验与结果分析 4.1. 实验数据描述 刘礼力 [ 13 ] 选取2010~2016人人贷的数据进行违约风险分析，由于近年来互联网金融整改政策严，人人贷2016年后也未披露违约信息，因此往年数据参考性不强。本文结合实际情况与平台特征，通过采集器对相关信息进行爬取后，抓取翼龙贷12，000条数据，数据量为12，000*41，违约标签占比12%，属于不均衡、纬度高的样本。 Table 1 The continuous variables of default warning mode 统计指标 借款金额 还款期限 借款人年龄 借款利息率 Mean 58，627.9 11.9 43 15 Std 32，614 5.4 9 0.64 Min 97.18 3 24 9.2 Max 950，000 36 66 21 变异系数 0.56 0.48 0.21 0.04 表1. 违约预警模型连续型变量 如表1，对于借款金额、还款年限两个连续性指标而言，其变异系数较大，数据分布较为离散，借款人年龄与借款利率低变异系数较低，数据分布较为紧凑。其中借款人年龄分布区间为24岁~66岁，均值为43岁，表明目前P2P借款人主要为中年群体。李广明 [ 3 ] 等人指出借款金额、还款期限与借款利息率对于违约风险的重要性，本文加入借款人年龄的特征进行建模分析。 Table 2 The discrete variables of default warning mode 统计 指标 借款人 行业 借款类型 信用等级 是否有担保人 借款人性别 借款人 所在地 受教育程度 年收入 工作年限 Unique 22 6 7 2 2 27 5 6 4 Top 农业 其他 BB 无 男 河北省 初中及以下 6~12万元 5年以上 Freq 6125 11，949 4634 11，001 10，093 1856 9156 5223 8636 异众 比率 0.50 0.004 0.61 0.08 0.16 0.85 0.24 0.56 0.28 统计 指标 是否有商 业保险 借款人职 业等级 借款人社 保年限 借款人房产 借款人婚姻状况 借款人贷 款记录 借款人信 用卡额度 借款人征 信报告 还款方式 Unique 2 5 5 6 8 4 7 2 3 Top 无 行业人员、学生和 职位不确定人员 未缴纳 自由未按揭， 价值0~100万元 已婚有子女 1-3年 无信用卡 有 还本付息 Freq 11，475 8237 10，743 8123 9056 5599 8203 8414 11，480 异众 比率 0.04 0.31 0.11 0.32 0.25 0.53 0.32 0.30 0.04 表2. 违约预警模型离散型变量 如表2，对于分类型数据，我们主要观察其异众比率。对于借款人所在行业来说，约50%的借款人从事行业为农业。其次，借贷人的受教育程度偏低，有24%的借贷人学历为初中及初中以下。同时，借贷人的担保类信息，担保度较低，例如有92%的借贷人都无担保人，96%的借贷人未购买商业保险，89%的借贷人未缴纳社保，68%的借贷人没有信用卡。根据刘博楠 [ 4 ] 的研究，这些特征结构会对P2P违约风险造成较大的影响。借款人性别中男性占比为84%，冯素玲 [ 14 ] 表明，男性借贷人违约概率显著高于女性概率。最后，借款类型和还款方式的异众比率过低，但通过统计发现，这两个特征对于是否还款违约具有一定的分类影响。 4.2. 数据预处理 由于直接从翼龙贷平台获取到的项目信息存在大量的标签性数据，例如项目ID，所属计划ID，借款人姓名，借款人身份证号等不适用于建模的特征，因此本文首先剔除这一类无用的标志性信息。接下来观察特征信息，其中借款人所在地区、借款人所在省份、借款人所在城市、长期居住地均描述了借款人的地理位置信息，具有较高的相似度，Abolfazl Nadi [ 15 ] 提出特征过高的分类量会造成加大树模型的过拟合效应，因此本文选取借款人所在省份作为地理位置信息特征。同时，借款人所在行业原始数据标签高达837种，结合翼龙贷平台分析，表明翼龙贷借款人在填写信息时共有四个下拉列表，加上其他的自由填写，导致借款人行业分类量过高，本文通过手动筛选与合并，将其合并为22类。 预测标签y共有三类，为违约，预期和坏账，为了便于二分类的混淆矩阵计算，本文参考廖理 [ 1 ] 的处理方法，将借款状态为“逾期”和“坏账”的所有样本认定为违约样本。 接下来检测缺失值，通过实验发现，只有借款类型一个特征有35个缺失值，笔者通过简单的平均值填充来对缺失值进行处理。 另外原始数据中包含借款标题与借款描述的特征，李杰 [ 7 ] 提出利用自然语言处理，计算借款标题与借款描述的相似度，作为一个新的特征加入到原始数据中，在初步实验中，本文直接将这两列数据删除，在后续模型的优化中，本文将加入这两列数据的相似度。 之后，本文对借款人行业、借款人性别、借款人信用等级等分类标签进行label-enconder编码，将其转化数字的格式，便于分类器计算。对于借款人年龄、借款期限、借款金额等连续型特征和编码后的分类型特征，进行z-score标准化。其标准化表达式如下： Z = X − E ( X ) σ ( X ) (4) 其中，X表示任意特征， E ( X ) 表示其期望， σ ( X ) 表示其标准差。 4.3. 实验步骤与结果分析 首先采用聚类的方法，根据轮廓系数选择簇数为11簇，对每一簇，分别进行划分训练集 T i 1 与测试集 T i 2 ( i = 0 ， 1 ， 2 ， ⋯ ， k 表示聚类的第i簇)，其比例为4:1，然后计算少数类样本点(违约样本点)与训练集中所有样本的欧式距离，我们将k值设定为10，即取每一个少数类样本点附近最近的十个点，并判断这十个样本点中违约样本点的数量，如果数量位于k/2和k之间，则该样本点为边界样本点，为我们要选择的样本点。接下来继续计算所有边界样本点与少数类样本的k近邻，根据采样倍率N进行插值，最终我们通过BSL采样获取不同簇下新生成的违约样本，并将生成样本与原始样本融合，最终形成新的测试集 T ′ 1 。本文根据聚类后不同簇数的样本量，基于经验选择k值为10。 为了验证基于BSL采用的算法针对于P2P违约风险预测的性能，本文首先进行BSL采样前，比较了逻辑回归(LR)，支持向量机(SVM)，随机梯度下降(SGD)，梯度下降树(GBDT)，贝叶斯(Bayes)，决策树(DT)，K近邻(KNN)，随机森林(RF)八个分类器的预警效果，各模型采取十折交叉验证的方法计算其准确度、违约标签的召回率、违约标签的F1值，三个指标的均值以及运行时间，其结果如表3所示： Table 3 The comparison of different algorithms before BSL samplin 模型 准确度 违约标签召回率 违约标签F1值 运行时间 LR 0.94 0.51 0.66 0.46s SVM 0.92 0.29 0.44 8.48s SGD 0.93 0.48 0.62 0.41s GBDT 0.95 0.61 0.72 5.45s Bayes 0.92 0.33 0.47 0.12s DT 0.94 0.61 0.66 0.20s KNN 0.935 0.52 0.63 3.70s RF 0.96 0.64 0.76 0.65s 表3. BSL采样前不同算法实验对比 通过对比发现，随机森林针对于该数据集，在准确度、违约标签的召回率、违约标签的F1值以及算法效率上都具有较好的结果。 张忠林 [ 9 ] 所提出的BSL采样算法，搜索规模为全局搜索，时间复杂度较高，且随着样本量的不断增加，算法运行时间会大幅度增长，本文借鉴张莉 [ 16 ] 的思想，根据轮廓系数的拐点，采用聚类的方式将样本分为11簇，对每一簇分别进行BSL采样，将全局搜索改为多个局部搜素，大大降低了时间复杂度。 Table 4 The comparison of bsl sampling and local BAL samplin 算法名称 采集样本数量 采样时间 RF的违约标签召回率 全局BSL采样 759 2 h 0.71 聚类后的局部BSL采样 667 11 min 0.82 表4. BSL采样与局部BSL采样实验对比 表4显示，使用聚类后的局部BSL采样，在采集违约样本的数量方面，由于全局和局部采样的k值设置相同，而局部采样每个簇数中样本量较少，因此使用局部BSL采样生成的违约样本数量少于全局BSL采样，但可以有效的提升违约标签的召回率，并大幅度降低时间复杂度，因此下文中的BSL采样将全部采样聚类后的BSL局部采样。 Table 5 The comparison of different algorithms after local BSL samplin 模型 准确度 违约标签召回率 违约标签F1值 运行时间 LR 0.90 0.42 0.58 0.80s SVM 0.87 0.27 0.43 15.9s SGD 0.89 0.51 0.64 1.02s GBDT 0.95 0.80 0.85 9.62s Bayes 0.89 0.43 0.57 0.62s DT 0.95 0.75 0.76 0.69s KNN 0.91 0.56 0.69 11.4s RF 0.96 0.82 0.87 1.3s 表5. 局部BSL采样后不同算法实验对比 表5显示加入局部BSL采样后，所有模型的运行时间变高，这是因为加入了采样后的数据量变大，针对于KNN算法，由于采样和算法的思想较为一致，因此违约数据的召回率得到提高，而针对于基于树思想的算法，例如GBDT、DT、RF，模型的违约数据召回率提升幅度较大，这是因为基于树思想的算法带有过拟合的特性，而基于BSL采样插入的新数据在一定程度上解决了SMOTE算法所带来的边界模糊问题，从而在结点生成的过程中使得模型的召回率得到更大程度的提高。 本文根据李杰 [ 7 ] 的加入文本相似度构架违约指标体系的思想，加入项借款标题、借款描述两列文本类型数据。基于两列文本的相似度作为借款人的一项借款特征，且相似度越高，表明填写借款信息越认真，信息越充分，因此将文本相似度作为一个新的变量加入到违约预警模型中。由于借款标题和借款描述，这两列文本具有一定的结构化性质，因此首先选取其句子的余弦相似度可以用来衡量两列文本的相似度，再与word2vec进行模型优化。本文首先使用Python中文文本分析工具包jieba对两列文本进行分词，并使用哈工大停止词表去除停止词。列出每行两列数据的所有词并取并集，构建每个短句的词向量，计算词频，更根据式(3)并返回两个词向量的余弦相似度，计算其文本相似度，得到借款标题-借款描述关联度指标。 接下来分别对使用余弦相似度和WMD算法计算出来的加入文本相似度的数据，使用局部BSL采样进行样本均衡，并对已经选择好的RF模型进行十折交叉验证，将余弦相似度、WMD算法计算出来的文本相似度与未加入文本相似度的模型对比，其结果如表6所示。 Table 6 The comparison of different algorithms of text similarit 文本相似度算法名称 采集样本数量 RF查准率 RF的违约标签召回率 余弦相似度 721 0.962 0.74 WDM 744 0.954 0.84 无 667 0.96 0.82 表6. 不同文本相似度算法对比 通过对比发现，加入了文本相似度特征后，两者采样的样本数量均有所提高，但对于余弦相似度来说，虽然模型的查准率有了小幅度提高，但模型的召回率降低的幅度却较大，因为余弦相似度无法计算同义词的相似性，导致描述中较多的同义词没有得到该有的相似度计算。但WDM能在小幅度降低查准率的时候，提高违约标签的召回率，因为基于word embedding空间的WMD算法充分利用了word2vec的领域迁移能力，并将问题转化为求解线性规划，具有全局最优解。。 因此，本文通过在均衡样本的过程中，将BSL算法优化为局部搜索，并进行八个分类器的对比，加入文本相似度优化，最终选择基于随机森林的局部采样样本均衡P2P违约预警模型，该模型在时间复杂度、违约识别率上具有较好的性能，同时随机森林模型可以较为便捷地应用到增量学习中，在实务中应用可以通过增加一个树的方式进行学习，而不需要从头开始学习，也降低了业务流程的复杂度。