文档章节

用机器学习构建模型,进行信用卡反欺诈预测

openfea
 openfea
发布于 2017/11/07 10:54
字数 839
阅读 204
收藏 2

本文通过利用信用卡的历史交易数据进行机器学习,构建信用卡反欺诈预测模型,提前发现客户信用卡被盗刷的事件。

1. 数据的下载和数据介绍

数据的下载地址为

https://www.kaggle.com/dalpozz/creditcardfraud/data

数据集是2013年9月使用信用卡进行交易的数据。此数据集显示两天内发生的交易,其中284,807笔交易中有492笔被盗刷。数据集非常不平衡,被盗刷占所有交易的0.172%。不幸的是,由于保密问题,我们无法提供原始数据。特征V1,V2,... V28是使用PCA获得的主要组件。特征Class是响应变量,如果发生被盗刷,则取值1,否则为0。

数据包含了Time,V1,V2,..V28,Amount,Class一共31列,其中Class是标签列,其中0代表没有被盗刷,1表示被盗刷。

2. 分析工具介绍

我们使用的工具是FEA-spk技术,它的底层基于最流行的大数据开发框架spark,对各种算子的操作都是基于DataFrame的,使用FEA-spk来做交互分析,不但非常简单易懂而且几乎和spark的功能一样强大,更重要的一点,它可以实现可视化,处理的数据规模更大,可以进行分布式的机器学习等

3. 案例的具体实现步骤如下

1. 数据预处理(Pre-processing Data)

(1) 加载数据

查看一下数据的大小

可以看到一共有28万多条

(2) 缺失值的处理,缺失值的占比情况

 可以看到没有缺失值

2. 特征工程(Feature Engineering)

统计目标列的情况,这里涉及到样本的不平衡问题

可以看到数据严重的不均衡,样本不平衡影响分类器的学习,下面进行欠采样。

可以看到数据比较平衡了。

3. 特征选择

(1)由于Spark机器学习只支持double类型的数据,所以我们将数据转化为double类型的。

(2) 将特征聚合为向量

(3) 我们可以看到Time和Amount对应的向量的规格和其他特征相差较大,因此我们需对其进行归一化处理。

(4)我们看到特征向量一共有30个特征,特征的个数太多了,下面我们对特征进行卡方特征选择,选取10个最有预测能力的特征。

可以看到特征向量的维度变为10维了。

4.将数据划分为训练集和测试集

可以看到,a表和b表的比例大约为10:1。

5. 模型设定与预测

(1)对训练集df6表构造逻辑回归模型

(2)此刻的模型已经建立好了,下面我们用测试集进行预测

其中prediction列就是测试集的预测结果。

(3)对模型进行打分,评价模型的好坏

可以看到,模型的准确率达到了91%以上。

(4) 将模型保存到hdfs上面,以便下次使用

(5) 加载模型

以上就是信用卡反欺诈模型的构建过程,关注openfea,会有更多精彩的内容推荐。

© 著作权归作者所有

openfea
粉丝 20
博文 89
码字总数 99945
作品 1
杭州
其他
私信 提问
假“信用卡”坑用户害商家 银行如何构建反欺诈模型

如今,信用卡盗刷、电信诈骗等交易欺诈事件总能挑起公众敏感的神经,带来对“钱包”安全的持续忧虑。 中国法院网报道:某不法分子通过伪造的信用卡,在一家珠宝店盗刷消费者9.28万元。法院审...

顶象技术
2018/10/18
0
0
通过关系网络进行欺诈检测和欺诈团伙发现

近年来搞金融诈骗的越来越厉害啦,除了团伙化、组织化的趋势,有的居然每个月还有固定的推广费呢。那么,如何从数据的角度去鉴别诈骗团伙呢?以下“朝阳35处”出品的这篇文章,介绍了如何利用...

u010159842
2018/05/24
0
0
机器学习在实时性欺诈检测中的应用案例

“机器学习”是一门计算机科学,指的是机器对数据进行学习,并执行一些通常来说需要人类智力来完成的任务。现在,该技术正在快速发展的阶段:据Gartner称,到2022年,超过一半的数据和分析服...

【方向】
2018/06/04
0
0
金融风控的难题怎么解?这里有三份大咖的“答卷”

金融的核心非风险管控莫属,尤其是在信贷领域,风控能力某种程度上也决定业务的生命力。 当前信贷行业呈现出一个明显的趋势,由于国民的消费结构、行为、习惯等变化,金融机构愈加重视消费金...

周蕾
02/15
0
0
慧安金科黄铃:面对金融欺诈, AI 如何揪出“老赖”

1994年年初,有位叫姜文的演员因饰演《北京人在纽约》中的王启明而被中国大众熟知。 彼时,众多怀揣着美国梦的中国人踏上了这片想象中的自由之地,当时22岁的黄铃还是北航飞行器设计和应用力...

郭佳
2018/09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部