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