1.1 第一章
数据挖掘介绍
1.1.1 什么是数据挖掘
数据挖掘(Data Mining)是一个利用各种分析工具在海量数据中发现模型和数据之间关系的过程,这些模型和关系可以被企业用来分析风险、进行预测。
“数据挖掘是通过仔细分析大量数据来揭示有意义的新的关系、模式和趋势的过程。它使用模式认知技术、统计技术和数学技术。”(Gartner Group)。
“数据挖掘是一个从大型数据库中提取以前不知道的可操作性信息的知识挖掘过程。”(Aaron Zornes, The META Group)。
数据挖掘能够帮助企业降低成本、减少风险、提高资金回报率。现在很多公司开始采用数据挖掘技术来判断哪些是最有价值客户、重整产品推广策略,以用最小的花费得到最好的销售。电信行业和银行业较先使用数据挖掘,电信公司使用数据挖掘检测话费欺诈行为,银行使用数据挖掘检测信用卡欺诈行为。
数据挖掘模型建立完成后,进行验证和评价非常必要。比如用市场调查得到的客户数据做了一个模型,来预测哪些客户群会对新产品感兴趣。通常情况下还不能用这个模型直接指导行动,更稳妥的做法是,先对一小部分客户做一个实际的测试,得到市场的实际反应情况,然后再大规模的采取市场推广行动。
数据挖掘帮助分析师和决策人员更深入、更容易的分析数据。为了保证数据挖掘结果的价值,用户必须非常了解自己的数据;并且了解数据挖掘工具是如何工作的,了解不同的技术和算法对模型的准确度和模型生成速度的影响。
大部分情况下,数据挖掘的分析数据源可以是数据仓库或数据挖掘数据集市。数据挖掘工具访问数据仓库进行数据挖掘有许多好处。因为导入到数据仓库的数据已经经过了大量的数据清理和转换工作,减少数据挖掘的数据清理过程。
图1 数据挖掘支持多数据源
在实施数据挖掘之前,需要制定实施步骤,有了好的计划才能保证数据挖掘顺利实施并取得成功。数据挖掘软件供应商提供了一些数据挖掘的过程模型,用来指导用户实施数据挖掘。比如SPSS的5A??评估(Assess)、访问(Access)、分析(Analyze)、行动(Act)和自动化(Automate),以及SAS的SEMMA??采样(Sample)、探索(Explore)、修正(Modify)、建模(Model)和评估(Assess)。
1.1.2 数据挖掘与OLAP
数据挖掘和OLAP是两种完全不同的工具,他们的用途不同,基于的技术也大相径庭。
OLAP是验证式的工具,告诉用户下一步会怎么样(What next),如果采取这样的措施又会怎么样(What if)。OLAP分析过程是一个演绎推理的过程,用户首先建立一个假设,然后用OLAP工具浏览数据来验证假设。如果一个分析涉及到的变量达到几十或上百个,那么用OLAP手动分析验证这些假设将是一件非常困难的事情。
数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模型的正确性,而是在数据库中自己寻找模型。数据挖掘过程是一个归纳的过程。如果一个分析师打算用数据挖掘工具分析移动电话用户的欠费风险,数据挖掘工具可能会帮助分析师发现一些从来没有想过的影响因素。
数据挖掘比OLAP更自动化、更深入,分析结果更难被理解。数据挖掘和OLAP具有一定的互补性,在利用数据挖掘工具挖掘出来的结论采取行动之前,你也许要用OLAP验证一下如果采取这样的行动会给企业带来什么样的影响。
将OLAP和DataMining技术结合起来形成了一个新的体系OLAM(On-Line Analytical Mining)。在OLAP中挖掘多层、多维的关联规则是一个很有效果的过程,可以挖掘到一些新的规则。
1.1.3 数据挖掘与CRM
数据挖掘能自动从庞大的数据中找到预测客户购买行为的模式。进行数据挖掘后,把结果输入到促销活动管理软件中,可以大大提高促销的效果。
数据挖掘辅助基于数据库的销售。数据挖掘能帮助销售人员更准确地定位推销活动,并使活动紧密结合现有客户和潜在客户的需求、愿望和状态。数据挖掘和CRM结合,通过数据挖掘优化CRM流程,可以用来留住客户,提高活动的响应率。
数据挖掘利用数据库的信息创建模型和预测客户行为。在使用数据挖掘给客户评分后,这些分数就可以用来为推销活动选择最适合的客户群。数据挖掘得出的可能流失客户名单,通过呼叫中心对客户进行关怀访问,争取留住客户,从而达到企业的长期利润最大化的目的。
数据挖掘可以增加客户在整个生命周期里的价值。通过追踪响应率和遵照客户行为变化的规则,可以评测市场推广活动的利润率和投资回报率。
我们希望CRM系统提供“封闭循环的推销”:不仅预测推销效果,执行推销活动,而且“封闭循环”,能够衡量活动的结果。系统衡量推销活动的效果,在下一个循环中,就可以采取措施提高有效性。
1.1.4 数据挖掘、AI与统计
统计学和数据挖掘有同样的目标:发现数据中的结构,所以有人认为数据挖掘是统计学的分支。这是一个不切合实际的结论,有两个原因说明这个问题。
一是数据挖掘更多的是应用其它领域的思想、工具和方法,尤其是数据库技术和机器学习等计算机学科分支。二是由于统计学的数学背景和追求精确的方法,在采用一个方法之前先要进行充分的证明,而不是类似计算机科学和机器学习那样注重于经验。
神经元网络、遗传算法和机器学习等知识发现技术,在足够多的数据和计算能力下,可以自动完成许多有价值的计算。关于数据挖掘和知识发现的关系,有很多人认为数据挖掘是知识发现过程的一个步骤,一些人则把数据挖掘和知识发现等同起来。
数据挖掘利用统计和人工智能的技术,把这些高深复杂的技术封装起来,使用户不用掌握这些技术也能完成同样的功能,从而更加专注于自己所要解决的问题。
1.2 第二章数据挖掘模型和算法
数据挖掘软件使用的算法基本上都是成熟的、公开的算法,有一些公司采用自己研发的未公开的算法。
大部分算法都不是专为解决某个问题而设计的,算法之间没有互斥性。不能认为一个问题非要采用某种算法,也不存在所谓最好的算法,一般通过试验来选取合适的算法。
一、关联分析
关联分析挖掘数据中项集之间有意义的关联或相关联系。关联分析是寻找数据库中数值的相关性,常用的技术是关联规则和序列模式。从大量商业数据中发现有意义的关联关系,可以帮助商业决策的制定,如交叉销售和优惠促销行动等。典型的应用如超市使用关联分析设计商品的摆放位置,方便顾客购物。
表达某一特定关联出现的频率在关联规则中称为支持度;当情况一出现时,发生情况二的概率在关联规则中称为可信度。比如在100万个移动通信用户中,有25万用户使用手机银行业务,2万用户同时使用手机银行和移动秘书业务,则同时使用两种业务的支持度为200/10000=2%;使用手机银行业务的用户,会选择移动秘书业务的可信度为200/2500=8%。
关联分析得到的模式需要其它数据验证其正确性,并进行必要的试验,来保证利用历史数据得到的规律有效的应用于未来的环境。比如,设计超市商品摆放在货架的位置,把相关性强的商品摆放在一起,可能会导致这样的情况发生:顾客非常容易的找到需要的商品,就不会去考虑哪些不在购买计划内的商品。所以,在实施之前一定要经过充分的分析和试验。
Apriori算法是挖掘布尔关联规则最有影响的算法,但Apriori算法递推的过程,要求多次的数据库扫描,将引起很大的I/O负载。Agrawal等引入了修剪技术改进算法的性能。采用基于采样的方法也可以显著地减少了I/O负载,在数据库中选取随机样本S,在样本S中搜索频集,再用另一个样本数据验证结果。
1.2.1 分类和预测
分类就是对一个事件或一组对象进行归类。可以用分类模型分析已有的数据,还可以用分类模型来预测未来。分类和预测是两类主要的预测问题,预测离散数据通常称为分类,预测连续数据通常称为预测。
分类算法通过分析已知的分类信息得到一个预测模型。用于建立模型的分类数据称为训练集。训练集也可以是通过实验得到的数据,比如从数据库中提取出一个客户名单列表,向这些客户发送新产品的介绍资料,然后收集对此做出回应的客户资料,用这些记录建立一个预测模型,预测哪类用户会对新产品感兴趣,最后把这个模型应用于新产品的推广。
决策树是一种典型的分类算法,可以得到类似在什么条件下会得到什么结果的规则。比如,建立顾客决策树模型,进行市场细分;找出最有可能对促销宣传感兴趣的客户群
沿着决策树从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同条件得到不同的分支子树,最后到达叶子节点。生成决策树的过程是不断把数据进行切分的过程。常用的决策数算法有ID3、C4.5和CART等。
决策树的优点是生成容易理解的规则,如果建立一个包含几百个属性的决策树,虽然看起来很复杂,但每一条从根结点到叶子节点的路径所描述的含义还是可以理解的。再者,决策树算法的计算量相对来说不是很大,并且擅长处理非数值型数据。
使用决策树算法也要注意其局限性。决策树对连续性的字段比较难预测;对有时间顺序的数据需要很多预处理。决策树的明确性可能会误导使用者,因为每个节点对应分割的定义都是明确不含糊的,但在实际应用中会有问题,比如为什么认为年龄为30岁的用户通信话费欺诈风险高于31岁的用户?
1.2.2 聚类分析
聚类就是将数据分组成多个类或簇,同一个簇中的对象之间具有较高的相似度。与分类不同的是,在进行聚集分析之前不知道要把数据分成几组,也不知道怎么分。因此在聚类分析之后要有对业务很熟悉的分析师来解释聚类结果的意义。聚类能够帮助市场分析人员从客户数据库中发现不同的客户群,并用购买模式来描述各个客户群的特征。
神经网络(Artificial Neural Network,简称A.N.N.)是常用的聚集算法,应