基于Apriori算法的银行客户行为分析 下载本文

龙源期刊网 http://www.qikan.com.cn

基于Apriori算法的银行客户行为分析

作者:侯洪涛 黄有方 来源:《硅谷》2012年第03期

摘 要: 采用数据挖掘技术中的Apriori算法,对银行客户记录进行关联规则的分析。通过对记录中年龄、性别、收入情况、居住所在地、婚姻状况等有关属性的关联度分析,寻找记录中属性间的彼此关联。从而根据这种属性间的彼此关联,对客户其他的未知属性进行预测,进而对银行客户的存款等行为趋势进行预测。 关键词: 数据挖掘;Apriori算法;银行客户

中图分类号:TP311.13 文献标识码:A 文章编号:1671-7597(2012)0210020-02 s0 引言

随着对银行客户记录管理信息化程度的不断提高,积累了大量的银行客户信息。这些记录中蕴含着银行客户记录属性与属性间的相互关联,进而能够通过某些记录的属性值,对相应的属性值在可接受的置信区间内做出相应的预测,以预测银行客户存款等行为趋势。数据挖掘,是指从大量的数据中自动搜索隐藏于其中的有着特殊关系的信息的过程。它是随着数据库和人工智能技术的发展而出现的全新信息技术,也是目前国际上数据库和信息决策领域的一个热点。根据发现知识的种类,数据挖掘分为关联规则挖掘、分类挖掘、聚类挖掘、属性选择挖掘、时间序列挖掘等。本文采用数据挖掘中的Apriori算法,通过开源工具Weka对银行客户记录进行关联度分析,通过选取银行客户的年龄、性别、收入情况、居住所在地、婚姻状况等属性,研究了这些属性与银行客户的存款行为、拥有银行账户的相关关系。 1 关联规则 1.1 关联规则的介绍

关联规则是数据挖掘领域的一个重要分支。关联规则是Agrawal等人在1993年提出的,其定义如下:设I={I1,I2,…,Im}是m个项的集合,事务T是I的子集,事务集D是不同事务的集合。关联规则是形如X=>Y的蕴涵式,其中X是I的子集,Y是I的子集,且X和Y没有交集。

1.2 关联规则的基本概念 1)支持度

龙源期刊网 http://www.qikan.com.cn

支持度描述了2个项X和Y同时在事务集D中出现的概率。计算公式为:Support(X->Y)=|{T:X∪Y∈T,T∈D}|/|D|。 2)置信度

置信度描述了在X出现的情况下,同时出现Y的概率,也就是条件概率P(Y|X)。计算公式为:Confidence(X->Y)=|{T:X∪Y∈T,T∈D}|/|{T:X∈T,T∈D}|。 1.3 Apriori算法

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频繁项集思想的递推算法。该算法的基本思想是:首先,找出所有的频繁项集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频繁项集产生强关联规则,这些规则必须满足最小支持度和最小可信度;然后使用第1步找到的频繁项集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于客户给定的最小可信度的规则才被留下来。为了生成所有频繁项集,使用了递推的方法。

1)L1=find_frequent_1-itemsets(D)

2)for(k=2;Lk-1≠Φ;k++)//使用递归方法生成频繁项集 3){

4)Ck=apriori_gen(Lk-1,min_sup) 5)for each transaction t∈D 6){//扫描事务集D,得到count 7)Ct=subset(Ck,t);//得到t中候选子集 8)for each candidate c∈Ct 9)c.count++ 10)}

11)Lk={c ∈ Ck|c.count≥min_sup} 12)}

龙源期刊网 http://www.qikan.com.cn

13)return L=UkLk 2 关联规则的挖掘

本文采用开源工具Weka进行关联规则的挖掘,挖掘对象是银行客户记录,记录中属性有id、age、sex、region、income、married、children、car、save_act与current_act。其中,save_act表示客户是否有存款行为,current_act表示客户是否有临时账户。本文中,关联规则的挖掘分为四个步骤。 2.1 数据的预处理

本文银行客户记录中,“id”属性只是用来区别不同客户,在关联规则挖掘中,并没有实际意义,因此需要将此属性移除。Weka提供对数据预处理的功能,可完成移除记录中属性操作。数据预处理前的数据项目集如图1所示,数据预处理后的数据项目集如图2所示。

2.2 数据的离散化

数据的离散化是指将把连续变化的量分区间来考虑。在本文中,单纯的研究某一个年龄或者某一收入值的数据记录,并没有实际的意义。因此Apriori算法需要将数值型数据转化为离散型数据,这个过程需要数据的离散化操作。本文银行客户记录中,age、sex、children三个属性为数值型,需要离散化操作。数值型数据进行离散化操作后的数据项目集如图3所示。

2.3 数据离散化后的后期处理

经离散化后处理的数据,往往与实际中有所出入,例如age属性离散化后的取值范围为“(-inf-34.333333]”。对此比较晦涩的属性区间,本文将其替换为“0_34”。对于age、income类似的属性区间,也采用此形式的属性区间予以替换。 2.4 关联规则挖掘的参数的设置

经过处理的数据,可以进行关联规则的挖掘。Weka在应用Apriori算法时,需要设置算法参数值。参数设置界面如下图所示。见如图4。