信用卡反欺诈消费预测模型

本章涉及知识点

1、数据场景

2、模型选择

3、数据探索

3.1、正负样本的占比

3.2、缺省值检测

3.3、单一特征在所有类别中的分布

3.4、每个特征在所有类别中的分布

3.5、彼此特征之间的相关性矩阵

3.6、高维特征空间在低维空间的分布

4、特征工程

4.1、特征标准化

4.2、特征选择

4.3、数据降维

5、模型训练和评估

5.1、处理训练集样本不平衡

5.2、训练模型

5.3、评估模型:混淆矩阵

6、模型调优

7、结果分析

一、数据场景

数据集来源于Kaggle平台,包含欧洲持卡人于2013年9月通过信用卡进行的交易,此数据集显示两天内发生的交易,其中284807笔交易中有492笔被盗刷。如果发生被盗刷,则取值1,否则为0

二、模型选择

原始数据集如下

数据集
数据集

通过观察数据集,我们可以分析出以下几点:

(1)每一笔刷卡交易都由28维特征加上时间和交易金额来表示,即30维向量

(2)V1到V28数值特征都经过PCA转化为结构化数据

(3)每一笔交易的标签均属于两类:正常交易为0,欺诈交易为1

数据场景本质是一个二分类问题,且每条数据都打好了标签,因此我们可以用监督式学习的二分类算法来建立场景模型

至此我们构建整个场景工程的步骤为:

(1)数据探索—EDA

(2)特征工程

(3)模型训练和评估

(4)模型调优

下面我们开始一步步构建整个场景工程

三、数据探索

我们对数据初步查看和统计

数据初步查看和统计
数据初步查看和统计

通过查看数据信息得知,数据的类型基本是float64(PCA转换结果)

3.1、正负样本的占比

正负样本的占比
正负样本的占比
正负样本的占比

通过上图可知:可以看到正负样本极度失衡,且不在一个数量级上

3.2、缺省值检测

缺省值检测

通过上图可知:数据集不存在缺省值,因此不需作缺省值处理

3.3、单一特征在所有类别中的分布

我们可以观察某个特征(如Time或者Amount)在不同Class中的分布情况

单一特征在所有类别中的分布

观察Time在不同Class中的分布情况:

Time在不同Class中的分布

通过上图可知:信用卡欺诈交易与时间不存在周期性,而正常的交易与时间存在类似双峰的周期性

从业务上也许说明:信用卡盗刷者为了不引起信用卡卡主的注意,更偏向选择信用卡卡住睡觉的时间或正常消费频率较高的时段来作案

观察Amount在不同Class中的分布情况:

Amount在不同Class中的分布

通过上图可知:信用卡欺诈交易的金额量比起正常交易要小的多

从业务上也许说明:信用卡盗刷者为了不引起信用卡卡主的注意,更偏向选择小金额消费来作案

3.4、每个特征在所有类别中的分布

我们通过集成了分箱和核密度估计的displot来观察每个特征在所有类别中的分布

每个特征在所有类别中的分布
每个特征在所有类别中的分布

上图是不同特征分别在信用卡被盗刷信用卡正常中的分布情况,其中:

(1)红色表示该特征在欺诈中的分布,绿色表示该特征在正常中的分布

(2)两个分布的交叉面积越大,则以该特征作为分类的区分度越小,如V15特征

(3)两个分布的交叉面积越小,则以该特征作为分类的区分度越大,如V14特征

3.5、彼此特征之间的相关性矩阵

我们还可以分别观察彼此特征之间的相关性

彼此特征之间的相关性矩阵
彼此特征之间的相关性矩阵

通过上图可知:在欺诈交易中,一部分特征的相关性较为明显,如V12、V17、V18等

3.6、高维特征空间在低维空间的分布

我们也可将每个30维特征的样本降维到2维,即将高维度特征空间映射到低维度来观察其分布

高维特征空间在低维空间的分布
高维特征空间在低维空间的分布

通过上图可知:由于我们用PCA降维,欺诈点和正常点分布基本重合,分类分布丢失

因为PCA属于非监督学习且按照方差最大化来投影,其分类效果不好,为此在后续特征工程中,如果要对数据进行降维处理,我们会使用监督学习如LDA算法

四、特征工程

做完上述数据探索分析,接下来我们进入特征工程处理

4.1、特征标准化

由于特征Time和Amount的规格和其余特征差距较大,我们对它们进行标准化

特征标准化

4.2、特征选择

我们使用Embedded集成法的树模型—GBDT来完成特征选择

特征选择
基于GDBT的特征选择重要度
基于GDBT的特征选择重要度

通过上图可知:我们通过GDBT将特征从31个缩减至18个

4.3、数据降维

由于数据均打上分类标签,我们对筛选后的特征样本使用LDA算法降维

数据降维

五、模型训练和评估

做完上述特征工程后,接下来我们进入建模

5.1、处理训练集样本不平衡

在进行模型训练前,由于正负样本极度不平衡,会对模型学习造成困扰,因此我们需要解决样本不平衡问题

一般处理样本不平衡有上采样下采样两种方法

1)上采样:对样本中数量较少的那一类进行生成算法补齐,使之达到与较多的那一类样本相匹配的数量,如SMOTO算法

(2)下采样:从数量比较多的那类样本中,随机选出和与数量比较少的那类样本数量相同的样本,最终组成正负样本数量相同的样本集

这里我们选择上采样,对训练集使用SMOTO算法来平衡正负样本

训练集过采样

PS:注意我们只对训练集进行过采样测试集依然是真实数据

训练集过采样

5.2、训练模型

接下来我们开始构建逻辑回归模型,用上采用平衡的训练集训练分类器

训练模型

5.3、评估模型—混淆矩阵

我们使用混淆矩阵来评估模型

这里需要知道几个一级统计量二级统计量的统计定义

一级统计量:

(1)TP:真实值是positive,模型预测是positive的数量

(2)TN:真实值是negative,模型预测是negative的数量

(3)FP:真实值是negative,模型认为是positive的数量

(4)FN:真实值是positive,模型认为是negative的数量

二级统计量:

(1)准确率

准确率

准确率的统计意义是:在模型所有判断正确的结果中,占总观测值的占比

(2)精确率

精确率

精确率的统计意义是:在模型预测是positive的所有结果中,模型预测正确的占比

(3)召回率

召回率

召回率的统计意义是:在真实值是positive的所有结果中,模型预测正确的占比

(4)特异度

特异度

特异度的统计意义是:在真实值是negative的所有结果中,模型预测正确的占比

上面四个二级统计量一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵

淆矩阵

我们用混淆矩阵在测试集上评估分类模型

混淆矩阵评估

其中F1分值是结合精确率Precision和召回率Recall的三级统计量

F1分值

F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差

混淆矩阵评估
混淆矩阵评估

这个混淆矩阵的统计意义为:

(1)有13个欺诈交易,模型错误的预测成了正常交易(左下角)

(2)有2227个正常交易,模型错误的预测成了欺诈交易(右上角)

(3)有83056个正常交易,模型预测完全正确(上对角线)

(4)有147个欺诈交易,模型预测完全正确(下对角线)

六、模型调优

训练完模型,我们使用网格搜索在训练集上交叉验证对模型的超参数进行调优

场景模型里影响分类器的超参数的选择有以下几种情况:

(1)特征选择的数量和组合

(2)筛选后的特征数据是否降维

模型网格搜索调优

下面我们来观察在不同的操作情况和超参数下,模型在测试集上的评估结果

(1)18个特征 + 不降维处理

18个特征 + 不降维处理

(2)14个特征 + 不降维处理

18个特征 + 不降维处理

(3)18个特征 + 降维处理

18个特征 + 降维处理

(4)14个特征 + 降维处理

14个特征 + 降维处理

综合上述评估结果,我们可以看到:

(1)不同特征的组合影响模型的准确率

(2)如果特征数据不降维,则在测试集上,模型把正常交易判断错的概率大,而欺诈交易判断错的概率小

(3)如果特征数据降维,则在测试集上,模型把正常交易判断错的概率小,而欺诈交易判断错的概率大

七、总结

对于这个场景案例的整个建模工程,我们可以总结出:

(1)对于任意一份数据集,首先检查其数据类型和分布情况

(2)对于数据样例分布不平衡,应采取上采样或下采样使得数据样例达到平衡后,再进行模型的训练和调参

(3)模型的调参是一个痛苦的过程,不同的行为(如特征选择或降维算法)会产生不同的超参数组合,需要不断的试验来获取最佳参数

(4)模型的评估不该只依赖一个统计量(如准确率),而应该综合考虑召回率、F1值等混淆矩阵多个统计量

案例代码见:信用卡反欺诈消费预测模型

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容