当前位置:首页 > 技术分享 > 正文

行业案例 | 数据分析在银行业应用之欺诈检测

CDA数据分析师出品作者:ElenaKosourova编译:Mika在本文中我们将通过探索一个很常见的用例——欺诈检测,从而了解数据分析在银行业是如何运用的。背景介绍银行业是历史上收集了大量结构化数据的领域之一,也是最早应用数据科学技术的领域之一。那么,数据分析是如何应用于银行业的?如今,数据已经成...

CDA数据分析师出品作者:ElenaKosourova编译:Mika在本文中我们将通过探索一个很常见的用例——欺诈检测,从而了解数据分析在银行业是如何运用的。背景介绍银行业是历史上收集了大量结构化数据......

CDA数据分析师出品

作者:ElenaKosourova

编译:Mika

在本文中我们将通过探索一个很常见的用例——欺诈检测,从而了解数据分析在银行业是如何运用的。

背景介绍

银行业是历史上收集了大量结构化数据的领域之一,也是最早应用数据科学技术的领域之一。

那么,数据分析是如何应用于银行业的?

如今,数据已经成为银行业最宝贵的资产,不仅可以帮助银行吸引更多的客户,提高现有客户的忠诚度,做出更有效的数据驱动的决策,还可以增强业务能力,提高运营效率,改善现有的服务,产品并推出新的服务,加强安全性,并通过所有这些行动获得更多的收入等等。

因此,如今大部分数据相关工作需求来自银行业,这并不令人惊讶。

数据分析使银行业能够成功地执行众多任务,包括:

投资风险分析

客户终身价值预测

客户细分

客户流失率预测

个性化营销

客户情绪分析

虚拟助理和聊天机器人

下面,我们将仔细看看银行业中最常见的数据分析用例之一。

数据分析在银行业应用案例:欺诈检测

不仅在银行业,欺诈活动在许多其他领域,如政府、保险、公共部门、销售和医疗保健领域都是一个具有挑战性的问题。

任何处理大量在线交易的企业都会面临欺诈风险。金融犯罪的形式多种多样,包括欺诈性信用卡交易、伪造银行支票、逃税、网络攻击、客户账户盗窃、合成身份、诈骗等。

欺诈检测是为识别和防止欺诈活动和财务损失而采取的一种主动措施。

其主要分析技术可分为两组:

统计学:统计参数计算、回归、概率分布、数据匹配

人工智能(AI):数据挖掘、机器学习、深度学习

机器学习是欺诈检测的重要支柱。其工具包提供了两种方法:

监督方法:K-近邻、逻辑回归、支持向量机、决策树、随机森林、时间序列分析、神经网络等。

无监督方法:聚类分析、链接分析、自组织地图、主成分分析、异常识别等。

目前还没有通用的机器学习算法用于欺诈检测。相反,对于现实世界的数据科学用例,通常会测试几种技术或其组合,计算模型的预测准确性,并选择最佳方法。

欺诈检测系统的主要挑战是迅速适应不断变化的欺诈模式和欺诈者的策略,并及时发现新的和日益复杂的方案。欺诈案件总是占少数,并且很好地隐藏在真实的交易中。

让我们来探讨一下使用Python进行信用卡欺诈检测。

我们将用到creditcard_data数据集。

CreditCardFraudDetection|Kaggle数据集:

该数据集是Kaggle信用卡欺诈检测数据集的一个修改样本。原始数据代表了2013年9月两天内欧洲持卡人拥有信用卡的交易情况。

让我们读入数据并快速浏览一下。

importpandasaspd

creditcard_data=_csv('creditcard_',index_col=0)
print(creditcard_())
print('\n')
_columns=len(creditcard_data)
print(creditcard_(3))

class''
Int64Index:5050entries,0to5049
Datacolumns(total30columns):
0',alpha=0.5,linewidth=0.15)
(X[y==1,0],X[y==1,1],label='Class0',alpha=0.5)
c1=(X[y==1,0],X[y==1,1],label='Class0',alpha=.5)
(X_resampled[y_resampled==1,0],X_resampled[y_resampled==1,1],label='Class0','ClassDefiningwhichresamplingmethodandwhichMLmodeltouseinthepipeline
resampling=SMOTE()
lr=LogisticRegression()

pipeline=Pipeline([('SMOTE',resampling),('LogisticRegression',lr)])
(X_train,y_train)
predictions=(X_test)
print((y_test,predictions,rownames=['ActualFraud'],colnames=['FlaggedFraud']))


ActualFraud
0.014969
1.019

我们可以看到,在我们的案例中,SMOTE并没有带来任何改进:我们仍然捕获了90%的欺诈事件,而且,我们的假阳性数量略高。这里的解释是,重新取样不一定在所有情况下都能带来更好的结果。当欺诈案件在数据中非常分散时,其最近的不一定也是欺诈案件,所以使用SMOTE会引入一个偏见。

作为一个可能的方法,为了提高逻辑回归模型的准确性,我们可以调整一些算法参数。也可以考虑采用K-fold交叉验证法,而不是直接将数据集分成两部分。最后,我们可以尝试一些其他的机器学习算法(如决策树或随机森林),看看它们是否能给出更好的结果。

最新文章