system: [SYSTEM]

user: 4. 实验结果及分析 4.1. 实验数据 本文将通过实验得到的一系列评价指标证明这个模型的优越性。此实验数据集是由ULB ML Group [ 16 ] 提供的欧洲信用卡交易数据集。这个数据集一共有284，807条交易记录，但是仅有492条被欺诈记录，即未被诈骗与被诈骗数量比例为1:578，所以这个数据集表现出高度不平衡。由于信用问题和为保护用户客人隐私，数据中客户具备的原始特征没有被提供。这是一个非常典型的关于信用卡诈骗数据如表1所示： Table 1 Data set of credit card frau 未被诈骗 诈骗 特征数 数据总量 284315 492 29 284807 表1. 银行信用卡诈骗数据集 从中可以看出，将原始数据进行重新平衡是非常必要的，否则将会针对正常交易检测出现过拟合问题，针对一些被诈骗的形式也会被忽略。 4.2. 实验环境及评价指标 实验计算机环境配置为16 G内存，i7-8750H 2.2 GHZ处理器，操作系统为Windows 10，实验语言为Python，其中的框架使用TensorFlow，开发工具为Anaconda3。 评价一个机器学习算法的性能是非常重要的，它可以帮助我们寻找信用卡诈骗检测系统的最优参数。在机器学习领域中，混淆矩阵(confusion matrix)，又称为可能性表格或是错误矩阵。它是一种特定的2 × 2矩阵用来呈现算法性能的可视化效果，通常是监督学习(非监督学习，通常用匹配矩阵：matching matrix)。以分类模型中的最简单的二分类模型为例。对于这种问题，模型最终需要判断样本的结果是0还是1，或者说是positive还是negative。其中： · True Positive = TP：真实值是positive，模型认为是positive的数量 · False Negative = FN：真实值是positive，模型认为是negative的数量：这就是统计学上的第二类错误(Type II Error) · False Positive = FP：真实值是negative，模型认为是positive的数量：这就是统计学上的第一类错误(Type I Error) · True Negative = TN：真实值是negative，模型认为是negative的数量 模型评估的矩阵如表2所示： Table 2 Model evolution matri 真实值 预测值 Positive (欺诈样本) Negative (正常样本) Positive (欺诈样本) TP FN Negative (正常样本) FP TN 表2. 模型评估矩阵 另外，本文中的对比实验中使用了准确率、召回率、精准率等性能指标，这些性能指标数学公式如下： Accr = TP + TN TP + FN + FP + TN (12) Recall = TP TP + FN (13) Precision = TP TP + FP (14) F1 = 2 × Precision × Recall Precision + Recal (15) 其中Accr (准确率)表明所有实验记录中被正确分类的结果占总观测值的比重；Recall (召回率)表明在模型预测是positive的所有结果中，模型预测为正确的比重；Precision (精准率)表明在真实值是Positive的所有结果中，模型预测结果为正确的比重；F1值表明precision与recall调和平均值。 当数据集为极不平衡数据集，针对诈骗检测模型表现accuracy作为测量指标是不足够准确的。因此，我们将考虑precision，recall，F1和AUC作为评价性能指标；受试者工作特征曲线(Receiver operating characteristic cure，简称ROC曲线)，又称感受性曲线(Sensitivity cure)，ROC可以更好的描述针对不平衡数据分类器的表现。AUC (Area under cure)是统计学习中普遍使用的对于二分类评价指标，数值含义是ROC曲线所包含的面积值。 4.3. 实验结果 此欺诈模型中的神经网络结构由输入层，三层卷积层，两层池化层及全连接层组成。第一层输入层是由信用卡交易原始数据预处理后的数据集提取的原始数据特征组成，而后的第一层卷积层由64个尺寸为5 × 5的卷积核组成，第二层卷积层由32个尺寸为3 × 3的卷积核组成，第三层卷积层由16个尺寸为3 × 3的卷积核组成，其中前两层卷积层后面都连接一个最大池化层(Maxpooling)，最后一层是带有ReLU激活函数的全连接层；再经过卷积神经网络得到的提取特征输入到支持向量机对整个模型进行输出，对模型输出进行分类，检测交易数据是正常交易还是诈骗交易。 为了证明本文提出的模型的优越性，在实验中首先对信用卡数据通过SMOTE算法进行过采样处理，然后对数据进行随即分割，将处理后的数据的70%作为训练集，将原始数据的30%按照分层抽样的方法诈骗样本与正常交易样本比例进行抽样作为测试集。 在这部分，本文将利用Python语言分别对信用卡数据应用门控递归单元(GRU)，GRU-SVM，卷积神经网络，支持向量机及高斯朴素贝叶斯 [ 17 ] 作为参照模型，其中对于文章提出的诈骗检测系统中的卷积神经网络中的目标函数的优化操作上采取Adam [ 18 ] 优化算法，此优化算法是随机梯度下降算法的扩展式，通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率，可以有效地减少过拟合问题并提高模型的泛化能力，能够获得更优秀的CNN模型。其中各个模型参数如表3所示。 Table 3 Parameters of each mode 超参数 CNN-SVM GRU GRU-SVM SVM CNN Batch_size 256 256 256 - - epochs 30 30 30 - - 学习率 10 -3 10 -3 10 -3 - 10 -3 分类数量 2 2 2 2 2 Dropout 0.5 - - - 0.5 表3. 各个模型参数 本实验中，分别应用本文提出的诈骗检测系统(CNN-SVM)与其他机器学习方法和经典的诈骗检测方法对欧洲信用卡实例数据进行训练，然后进行测试，得到Precision，F1-score，Recall，AUC的数值。以Precision，F1-score，Ave_Precision，Auc作为指标与CNN-SVM进行分类和检测效果对比，各个实验指标表格如表4所示和柱形图如图4所示。 Table 4 Experiment index of each mode 评价指标 CNN-SVM GRU GRU-SVM SVM CNN SMOTE + GNB Precision 0.91 0.18 0.13 0.07 0.88 0.18 Avg Precision 0.96 0.59 0.57 0.54 0.94 0.15 F1 score 0.90 0.30 0.23 0.14 0.89 0.30 AUC 0.96 0.96 0.95 0.95 0.96 0.96 表4. 各个模型实验指标 通过以上指标图表明，本文提出的CNN-SVM方法对正样本(诈骗样本)检测的准确率即precision达到92%，相比于CNN算法大约有3%的提升，并且远高于其他统计学习算法；F1作为准确率(precision)和召回率(recall)的Harmonic平均值更适合区分诈骗样本和正常交易，作为本文提出的检测系统方法的F1值高达90%，略高于CNN算法，远高于其他统计学习算法；CNN-SVM针对信用卡交易样本的正负样本的平均值高达96%，相比于CNN算法有2%的提升，并且远高于其他统计学习算法；此检测系统的AUC达到96.5%，对比其他检测算法略高于1%，相比传统欺诈检测系统(使用SMOTE(borderline2)平衡算法的传统欺诈检测系统 [ 17 ] 在相同数据集上的AUC达到88%))性能大约提高了10%。 以上实验表明，本文提出的基于CNN-SVM对信用卡交易诈骗检测具有良好的效果，能有效地从交易数据中检测出诈骗样本。在现实中，可以通过本文提出的信用卡欺诈检测模型检测当次交易结果是否存在欺诈行为，并且得到的结果需要在银行或者金融机构做进一步的检查和验证，所以本文提出的信用卡欺诈检测系统对银行机构在对信用卡欺诈行为上起到了预警作用，并且极大地提高了检测的效率和结果的准确性。 图4. 各个算法指标对比图