商业智能技术的先锋:---数据仓库与数据挖掘徐永春博士2011610尿布和啤酒在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售!但是这个奇怪的举措,却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁超市的真实案例,并一直为商家所津津乐道是什么让沃尔玛发现了尿布和啤酒之间的关系呢?正是通过对超市一年多的原始交易数据进行详细分析,他们发现了这一神奇组合。沃尔玛利用NCR数据挖掘工具对这些数据进行分析和挖掘,得到一个意外的发现:跟尿布一起购买最多的商品竟是啤酒!这个结果符合真实情况吗?是否有利用价值?沃尔玛派出市场调查人员和分析师对此进行调查分析。调查结果揭示了一种隐藏在“尿布与啤酒”背后的美国人的行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%-40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。从此,沃尔玛各门店都“尿布和啤酒”,这一数据挖掘(datamining)的经典例子,告诉我们,面对混沌的未来,我们不是完全束手无策,我们是可以有所为的。其实,只要我们了解所有商业运作的各种因素,进一步监控这些因素并向有关决策者们及时地提供相应信息。什么样是人性化的服务?想听一首歌,不必想好其歌名,到搜索引擎里去搜索、下载;而是输入现在的心情,比如“激昂”,播放器就自动播放出《男儿当自强》这样的歌曲,而且一首接着一首。想去旅游,不必苦思要去什么具体的城市,而是输入大概想法,比如“浪漫的周末度假”,就能马上看到十个建议:包括一家临海宾馆的情侣房、烛光晚餐、一套在周五晚起飞周日晚返归的机票。要完成这些人性化服务靠搜索引擎是不行的,得靠数据挖掘。现在,数据挖掘的各种应用离为我们提供上面这些真实服务已经越来越近了。内容提要数据挖掘于统计学数据挖掘基本概念数据挖掘基本特征数据挖掘的其他主题数据挖掘与数据仓库数据挖掘与统计学数据挖掘分析海量数据许多数据库都不适合统计学分析需要数据挖掘:发现驱动(数据驱动)数据研究统计学:假设驱动(人为驱动)研究数据数据挖掘数据库技术统计学高性能计算人工智能机器学习可视化数据挖掘是多学科的产物数据挖掘是信息技术自然进化的结果数据库、数据仓库和Intenet等信息技术的发展。计算机性能的提高和先进的体系结构的发展。统计学和人工智能等方法在数据分析中的研究和应用。网络之后的下一个技术热点大量信息在给人们带来方便的同时也带来了一大堆问题:信息过量,难以消化信息真假难以辨识信息安全难以保证信息形式不一致,难以统一处理数据丰富,但信息贫乏人类已进入一个崭新的信息时代数据库中存储的数据量急剧膨胀需要从海量数据库和大量繁杂信息中提取有价值的知识,进一步提高信息的利用率产生了一个新的研究方向:基于数据库的知识发现(KnowledgeDiscoveryinDatabase),以及相应的数据挖掘(DataMining)理论和技术的研究数据挖掘是从大量数据中提取或“挖掘”知识。知识是一种概念、规则、模式和规律等。通常,把数据看成是形成知识的源泉。数据挖掘过程模型是确保数据挖掘工作顺利进行的关键。典型的过程模型有:(1)SPSS的5A模型——评估(Assess)、访问(Access)、分析(Analyze)、行动(Act)、自动化(Automate)。(2)SAS的SEMMA模型——采样(Sample)、探索(Explore)、修正(Modify)、建模(Model)、评估(Assess)。(3)跨行业数据挖掘过程标准CRISP-DM——目前CRISP-DM仍在建立之中。(4)此外,TwoCrows公司的数据挖掘过程模型,它与正在建立的CRISP-DM有许多相似之处。数据挖掘过程模型神经网络和支持向量机模型使用神经网络近来越来越受到人们的关注,因为它为解决大复杂度问题提供了一种相对来说比较有效的简单方法。神经网络可以很容易的解决具有上百个参数的。神经网络常用于两类问题:分类和回归。需特别指出的是,在一般情况下,统计学习理论和支持向量机(SVM)比一般的神经网络更有效,而且可将SVM看作是广义化的神经网络。其优点是,具有深厚的数学基础,算法可靠、推广能力强,适用于小样本数据集的知识(或规则)发现。具体案例:数据挖掘过程主要由三个部分组成,即数据整理、数据挖掘和结果的解释评估。如:(1)定义商业问题要想充分发挥数据挖掘的价值,必须要对目标有一个清晰明确的定义,即决定到底想干什么。否则,很难得到正确的结果。(2)建立数据挖掘库数据准备工作大概要花去整个数据挖掘项目的50%-90%的时间和精力。一般来说,直接在公司的数据仓库上进行数据挖掘是不合适的,最好建立一个独立的数据集。建立数据挖掘库可分成如下几个部分:a)数据收集b)数据描述c)选择d)数据质量评估和数据清理e)合并与整合f)构建元数据g)加载数据挖掘库h)维护数据挖掘库(3)分析数据数据分析的目的:是找到对预测输出影响最大的数据字段,并决定是否需要定义导出字段。(4)准备数据这是建立模型之前的最后一步数据准备工作。可分成4个部分:a)选择变量;b)选择记录;c)创建新变量;d)转换变量。(5)建立模型对建立模型来说要记住的最重要的事是它是一个反复的过程。需要仔细考察不同的模型以判断哪个模型对你的商业问题最有用。为了保证得到的模型具有较好的精确度和健壮性,需要一个定义完善的“训练—验证”协议。有时也称此协议为带指导的学习。验证方法主要分为:a)简单验证法b)交叉验证法:首先把原始数据随机平分成两份,然后用一部分做训练集另一部分做测试集计算错误率,做完之后把两部分数据交换再计算一次,得到另一个错误率,最后再用所有的数据建立一个模型,把上面得到的两个错误率进行平均作为最后用所有数据建立的模型的错误率。c)自举法:是另一种评估模型错误率的技术。在数据量很小时尤其适用。与交叉验证一样模型是用所有的数据建立。(6)评价和解释a)模型验证。模型建立好之后,必须评价其结果、解释其价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,随着应用数据的不同,模型的准确率肯定会变化。更重要的是,准确度自身并不一定是选择最好模型的正确评价方法。需要进一步了解错误的类型和由此带来的相关费用的多少。b)外部验证。无论我们用模拟的方法计算出来的模型的准确率有多高,都不能保证此模型在面对现实世界中真实的数据时能取得好的效果。经验证有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立中隐含的各种假定。例如,在建立用户购买模式的模型时,可能没有考虑通货膨胀的影响,但实施模型时通货膨胀率突然由3%增加为17%,这显然会对人们的购买意向产生重大影响,因此再用原来的模型来预测客户购买情况必然会出现重大失误。(7)实施模型建立并经验证之后,可以有两种主要的使用方法:第一种方法,是提供给分析人员做参考,由他通过察看和分析这个模型之后提出行动方案建议。比如可以把模型检测到的聚集、模型中蕴含的规则、或表明模型效果的图表拿给分析人员看。另一种方法:是把此模型应用到不同的数据集上。模型可以用来标示一个事例的类别,给一项申请打分等。还可以用模型在数据库中选择符合特定要求的记录,以用OLAP工具做进一步的分析。当提交一个复杂的应用时,数据挖掘可能只是整个产品的一小部分,虽然可能是最关键的一部分。例如,常常把数据挖掘得到的知识与领域专家的知识结合起来,然后应用到数据库中的数据。在欺诈检测系统中可能既包含了数据挖掘发现的规律,也有人们在实践中早已总结出的规律。数据挖掘的应用电信:流失银行:聚类(细分),交叉销售百货公司/超市:购物篮分析(关联规则)保险:细分,交叉销售,流失(原因分析)信用卡:欺诈探测,细分电子商务:网站日志分析税务部门:偷漏税行为探测警察机关:犯罪行为分析医学:医疗保健市场分析和管理(1)用于分析的数据从何来?信用卡交易,信誉卡,折扣券,用户投诉电话,公众生活方式调查。目标市场找出具有相同特征(兴趣,收入水平,消费习惯等等)的“模式”顾客群。随着时间的推移决定顾客的购买方式从单独银行账户向联合银行账户的转变。例如:结婚交叉市场分析不同产品之间的销售关联关系在此关联信息上进行预测市场分析和管理(2)顾客形象数据挖掘可以告诉你什麽样的顾客会买什麽样的产品(聚类或分类)识别顾客需求保证为不同的顾客提供了最好的产品使用预测手段去发现什麽因素会吸引新的顾客。提供汇总信息各种各样的多方位汇总信息统计的汇总信息(数据中心的趋势和变化)欺骗性检测和管理(1)应用广泛应用于医疗系统,零售系统,信用卡服务,电信(电话卡欺骗行为),等等.实现途径利用历史性数据建立欺骗性行为模型并使用数据挖掘帮助识别同类例子具体事例汽车保险:检测出那些故意制造车祸而索取保险金的人欺骗性检测和管理(2)检测电话错误电话呼叫模式:呼叫目的地,持续时间,每天或每周的次数。分析与预期标准相背离的模式零售分析家估计38%的零售收缩缘于雇员的不诚实。商业挖掘案例:如何利用数据挖掘技术为商业服务市场营销领域,很多企业都会花很多的钱做各种各样的市场活动,如展会、研讨会等,只不过规模不同而已。任何市场活动的终极目标都是将企业所需传播的产品或其他的信息,在合适的时间(RIGHTtime),通过合适的渠道(RIGHTchanneI),传播给合适的群体(RIGHTpeopIe)。到了执行的层面,问题就演绎为:1)是否有足够的人员参加市场活动。因为活动场地空间的限制,太多或太少的人参加都会对市场活动的效果大打折扣。2)参加市场活动的人是否是企业所期望的合适的群体。如果大部分参加活动的人员都不是企业所期望的,同样地,市场活动就不能达到顶期的效果。2.数据挖掘和数据仓库大部分情况下,数据挖掘都要先把数据从数据仓库中拿到数据挖掘库或数据集市中。从数据仓库中直接得到进行数据挖掘的数据有许多好处。数据仓库的数据清理和数据挖掘的数据清理差不多,如果数据在导入数据仓库时已经清理过,那很可能在做数据挖掘时就没必要再清理一次了,而且所有的数据不一致的问题都已经解决了。数据挖掘库可能是数据仓库的一个逻辑上的子集,而不一定非得是物理上单独的数据库。但如果数据仓库的计算资源已经很紧张,那么最好还是建立一个单独的数据挖掘库。数据源数据挖掘库数据仓库的概念数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。与其他数据库应用不同的是,数据仓库更像一种过程,对分布在企业内部各处的业务数据的整合、加工和分析的过程。数据仓库的特性面向主题典型的主题领域:客户;产品;交易;帐目集成的数据提取、净化、转换、装载非易失的数据仓库的数据通常是一起载入和访问的,但并不进行一般意义上的数据更新随时间的变化性数据仓库中的时间期限要远远长于操作型系统中的时间期限(5~10年);数据仓库中的数据是一系列某一时刻生成的复杂的快照;数据仓库的键码结构总是包含某时间元素。数据仓库的结构早期细节级当前细节级轻度综合级数据集市高度综合级元数据操作型转换数据仓库面向应用的案例一家采用“会员制”经营方式的商场,按业务已建立起销售、采购、库存管理以及人事管理子系统。按照其业务处理要求,建立了相应的数据库模式:采购子系统:订单(订单号,供应商号,总金额,日期)订单细则(订单号,商品号,类别,单价,数量)供应商(供应商号,供应商名,地址,电话)销售子系统:顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)销售(员工号,顾客号,商品号,数量,单价,日期)面向应用的案例库存管理子系统领料单(领料单号,领料人,商品号,数量,日期)进料单(进料单号,订单号,进料人,收料人,日期)库存(商品号,库房号,库存量,日期)库房(库房号,仓库管理员,