下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

数据挖掘大神必知九大要点

作者:课课家教育     来源: http://www.kokojia.com点击数:950发布时间: 2017-06-08 10:00:04

标签: 数据库大数据python

  数据挖掘(英语:Datamining),又译为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-DiscoveryinDatabases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

  数据挖掘是利用业务知识从数据中发现和解释知识(或称为模式)的过程,这种知识是以自然或者人工形式创造的新知识。

数据挖掘大神必知九大要点_数据库_大数据_python_课课家教育

  当前的数据挖掘形式,是在20世纪90年代实践领域诞生的,是在集成数据挖掘算法平台发展的支撑下适合商业分析的一种形式。也许是因为数据挖掘源于实践而非理论,在其过程的理解上不太引人注意。20世纪90年代晚期发展的CRISP-DM,逐渐成为数据挖掘过程的一种标准化过程,被越来越多的数据挖掘实践者成功运用和遵循。

  虽然CRISP-DM能够指导如何实施数据挖掘,但是它不能解释数据挖掘是什么或者为什么适合这样做。在本文中我将阐述我提出数据挖掘的九种准则或“定律”(其中大多数为实践者所熟知)以及另外其它一些熟知的解释。开始从理论上(不仅仅是描述上)来解释数据挖掘过程。

  我的目的不是评论CRISP-DM,但CRISP-DM的许多概念对于理解数据挖掘是至关重要的,本文也将依赖于CRISP-DM的常见术语。CRISP-DM仅仅是论述这个过程的开始。

  第一,目标律:业务目标是所有数据解决方案的源头。

  它定义了数据挖掘的主题:数据挖掘关注解决业务业问题和实现业务目标。数据挖掘主要不是一种技术,而是一个过程,业务目标是它的的核心。没有业务目标,没有数据挖掘(不管这种表述是否清楚)。因此这个准则也可以说成:数据挖掘是业务过程。

  第二,知识律:业务知识是数据挖掘过程每一步的核心。

  这里定义了数据挖掘过程的一个关键特征。CRISP-DM的一种朴素的解读是业务知识仅仅作用于数据挖掘过程开始的目标的定义与最后的结果的实施,这将错过数据挖掘过程的一个关键属性,即业务知识是每一步的核心。

  为了方便理解,我使用CRISP-DM阶段来说明:

  商业理解必须基于业务知识,所以数据挖掘目标必须是业务目标的映射(这种映射也基于数据知识和数据挖掘知识);数据理解使用业务知识理解与业务问题相关的数据,以及它们是如何相关的;数据预处理就是利用业务知识来塑造数据,使得业务问题可以被提出和解答(更详尽的第三条—准备律);建模是使用数据挖掘算法创建预测模型,同时解释模型和业务目标的特点,也就是说理解它们之间的业务相关性;评估是模型对理解业务的影响;实施是将数据挖掘结果作用于业务过程;

  总之,没有业务知识,数据挖掘过程的每一步都是无效的,也没有“纯粹的技术”步骤。业务知识指导过程产生有益的结果,并使得那些有益的结果得到认可。数据挖掘是一个反复的过程,业务知识是它的核心,驱动着结果的持续改善。

  这背后的原因可以用“鸿沟的表现”(chasmofrepresentation)来解释(AlanMontgomery在20世纪90年代对数据挖掘提出的一个观点)。Montgomery指出数据挖掘目标涉及到现实的业务,然而数据仅能表示现实的一部分;数据和现实世界是有差距(或“鸿沟”)的。在数据挖掘过程中,业务知识来弥补这一差距,在数据中无论发现什么,只有使用业务知识解释才能显示其重要性,数据中的任何遗漏必须通过业务知识弥补。只有业务知识才能弥补这种缺失,这是业务知识为什么是数据挖掘过程每一步骤的核心的原因。

     第三,准备律:数据预处理比数据挖掘其他任何一个过程都重要。

  这是数据挖掘著名的格言,数据挖掘项目中最费力的事是数据获取和预处理。非正式估计,其占用项目的时间为50%-80%。最简单的解释可以概括为“数据是困难的”,经常采用自动化减轻这个“问题”的数据获取、数据清理、数据转换等数据预处理各部分的工作量。虽然自动化技术是有益的,支持者相信这项技术可以减少数据预处理过程中的大量的工作量,但这也是误解数据预处理在数据挖掘过程中是必须的原因。

  数据预处理的目的是把数据挖掘问题转化为格式化的数据,使得分析技术(如数据挖掘算法)更容易利用它。数据任何形式的变化(包括清理、最大最小值转换、增长等)意味着问题空间的变化,因此这种分析必须是探索性的。这是数据预处理重要的原因,并且在数据挖掘过程中占有如此大的工作量,这样数据挖掘者可以从容地操纵问题空间,使得容易找到适合分析他们的方法。

  有两种方法“塑造”这个问题空间。第一种方法是将数据转化为可以分析的完全格式化的数据,比如,大多数数据挖掘算法需要单一表格形式的数据,一个记录就是一个样例。数据挖掘者都知道什么样的算法需要什么样的数据形式,因此可以将数据转化为一个合适的格式。第二种方法是使得数据能够含有业务问题的更多的信息,例如,某些领域的一些数据挖掘问题,数据挖掘者可以通过业务知识和数据知识知道这些。通过这些领域的知识,数据挖掘者通过操纵问题空间可能更容易找到一个合适的技术解决方案。

  因此,通过业务知识、数据知识、数据挖掘知识从根本上使得数据预处理更加得心应手。数据预处理的这些方面并不能通过简单的自动化实现。

  这个定律也解释了一个有疑义的现象,也就是虽然经过数据获取、清理、融合等方式创建一个数据仓库,但是数据预处理仍然是必不可少的,仍然占有数据挖掘过程一半以上的工作量。此外,就像CRISP-DM展示的那样,即使经过了主要的数据预处理阶段,在创建一个有用的模型的反复过程中,进一步的数据预处理的必要的。

  第四,试验律(NFL律:NoFreeLunch):对于数据挖掘者来说,天下没有免费的午餐,一个正确的模型只有通过试验(experiment)才能被发现。

  机器学习有一个原则:如果我们充分了解一个问题空间(problemspace),我们可以选择或设计一个找到最优方案的最有效的算法。一个卓越算法的参数依赖于数据挖掘问题空间一组特定的属性集,这些属性可以通过分析发现或者算法创建。但是,这种观点来自于一个错误的思想,在数据挖掘过程中数据挖掘者将问题公式化,然后利用算法找到解决方法。事实上,数据挖掘者将问题公式化和寻找解决方法是同时进行的—–算法仅仅是帮助数据挖掘者的一个工具。

  有五种因素说明试验对于寻找数据挖掘解决方案是必要的:

  数据挖掘项目的业务目标定义了兴趣范围(定义域),数据挖掘目标反映了这一点;与业务目标相关的数据及其相应的数据挖掘目标是在这个定义域上的数据挖掘过程产生的;这些过程受规则限制,而这些过程产生的数据反映了这些规则;在这些过程中,数据挖掘的目的是通过模式发现技术(数据挖掘算法)和可以解释这个算法结果的业务知识相结合的方法来揭示这个定义域上的规则;数据挖掘需要在这个域上生成相关数据,这些数据含有的模式不可避免地受到这些规则的限制。

  在这里强调一下最后一点,在数据挖掘中改变业务目标,CRISP-DM有所暗示,但经常不易被觉察到。广为所知的CRISP-DM过程不是下一个步骤仅接着上一个步骤的“瀑布”式的过程。事实上,在项目中的任何地方都可以进行任何CRISP-DM步骤,同样商业理解也可以存在于任何一个步骤。业务目标不是简单地在开始就给定,它贯穿于整个过程。这也许可以解释一些数据挖掘者在没有清晰的业务目标的情况下开始项目,他们知道业务目标也是数据挖掘的一个结果,不是静态地给定。

  Wolpert的“没有免费的午餐”理论已经应用于机器学习领域,无偏的状态好于(如一个具体的算法)任何其他可能的问题(数据集)出现的平均状态。这是因为,如果我们考虑所有可能的问题,他们的解决方法是均匀分布的,以至于一个算法(或偏倚)对一个子集是有利的,而对另一个子集是不利的。这与数据挖掘者所知的具有惊人的相似性,没有一个算法适合每一个问题。但是经过数据挖掘处理的问题或数据集绝不是随机的,也不是所有可能问题的均匀分布,他们代表的是一个有偏差的样本,那么为什么要应用NFL的结论?答案涉及到上面提到的因素:问题空间初始是未知的,多重问题空间可能和每一个数据挖掘目标相关,问题空间可能被数据预处理所操纵,模型不能通过技术手段评估,业务问题本身可能会变化。由于这些原因,数据挖掘问题空间在数据挖掘过程中展开,并且在这个过程中是不断变化的,以至于在有条件的约束下,用算法模拟一个随机选择的数据集是有效的。对于数据挖掘者来说:没有免费的午餐。

  这大体上描述了数据挖掘过程。但是,在有条件限制某些情况下,比如业务目标是稳定的,数据和其预处理是稳定的,一个可接受的算法或算法组合可以解决这个问题。在这些情况下,一般的数据挖掘过程中的步骤将会减少。但是,如果这种情况稳定是持续的,数据挖掘者的午餐是免费的,或者至少相对便宜的。像这样的稳定性是临时的,因为对数据的业务理解(第二律)和对问题的理解(第九律)都会变化的。

  第五,模式律:数据中总含有模式。

  这条规律最早由DavidWatkins提出。我们可能预料到一些数据挖掘项目会失败,因为解决业务问题的模式并不存在于数据中,但是这与数据挖掘者的实践经验并不相关。

  前文的阐述已经提到,这是因为:在一个与业务相关的数据集中总会发现一些有趣的东西,以至于即使一些期望的模式不能被发现,但其他的一些有用的东西可能会被发现(这与数据挖掘者的实践经验是相关的);除非业务专家期望的模式存在,否则数据挖掘项目不会进行,这不应感到奇怪,因为业务专家通常是对的。

  然而,Watkins提出一个更简单更直接的观点:“数据中总含有模式。”这与数据挖掘者的经验比前面的阐述更一致。这个观点后来经过Watkins修正,基于客户关系的数据挖掘项目,总是存在着这样的模式即客户未来的行为总是和先前的行为相关,显然这些模式是有利可图的(Watkins的客户关系管理定律)。但是,数据挖掘者的经验不仅仅局限于客户关系管理问题,任何数据挖掘问题都会存在模式(Watkins的通用律)。

  Watkins的通用律解释如下:

  数据挖掘项目的业务目标定义了兴趣范围(定义域),数据挖掘目标反映了这一点;与业务目标相关的数据及其相应的数据挖掘目标是在这个定义域上的数据挖掘过程产生的;这些过程受规则限制,而这些过程产生的数据反映了这些规则;在这些过程中,数据挖掘的目的是通过模式发现技术(数据挖掘算法)和可以解释这个算法结果的业务知识相结合的方法来揭示这个定义域上的规则;数据挖掘需要在这个域上生成相关数据,这些数据含有的模式不可避免地受到这些规则的限制。

  总结这一观点:数据中总存在模式,因为在这过程中不可避免产生数据这样的副产品。为了发掘模式,过程从(你已经知道它)—–业务知识开始。

  利用业务知识发现模式也是一个反复的过程;这些模式也对业务知识有贡献,同时业务知识是解释模式的主要因素。在这种反复的过程中,数据挖掘算法简单地连接了业务知识和隐藏的模式。

  如果这个解释是正确的,那么大卫律是完全通用的。除非没有相关的数据的保证,否则在每个定义域的每一个数据挖掘问题总是存在模式的。

  第六,洞察律:数据挖掘增大对业务的认知。

  数据挖掘是如何产生洞察力的?这个定律接近了数据挖掘的核心:为什么数据挖掘必须是一个业务过程而不是一个技术过程。业务问题是由人而非算法解决的。数据挖掘者和业务专家从问题中找到解决方案,即从问题的定义域上达到业务目标需要的模式。数据挖掘完全或部分有助于这个认知过程。数据挖掘算法揭示的模式通常不是人类以正常的方式所能认识到的。综合这些算法和人类正常的感知的数据挖掘过程在本质上是敏捷的。在数据挖掘过程中,问题解决者解释数据挖掘算法产生的结果,并统一到业务理解上,因此这是一个业务过程。

  这类似于“智能放大器”的概念,在早期的人工智能的领域,AI的第一个实际成果不是智能机器,而是被称为“智能放大器”的工具,它能够协助人类使用者提高获取有效信息的能力。数据挖掘提供一个类似的“智能放大器”,帮助业务专家解决他们不能单独完成的业务问题。

  总之,数据挖掘算法提供一种超越人类以正常方式探索模式的能力,数据挖掘过程允许数据挖掘者和业务专家将这种能力融合在他们的各自的问题的中和业务过程中。

  第七,预测律:预测提高了信息泛化能力。

  “预测”已经成为数据挖掘模型可以做什么的可接受的描述,即我们常说的“预测模型”和“预测分析”。这是因为许多流行的数据挖掘模型经常使用“预测最可能的结果”(或者解释可能的结果如何有可能)。这种方法是分类和回归模型的典型应用。

  但是,其他类型的数据挖掘模型,比如聚类和关联模型也有“预测”的特征。这是一个含义比较模糊的术语。一个聚类模型被描述为“预测”一个个体属于哪个群体,一个关联模型可能被描述为基于已知基本属性“预测”一个或更多属性。

  同样我们也可以分析“预测”这个术语在不同的主题中的应用:一个分类模型可能被说成可以预测客户行为—-更加确切的说它可以预测以某种确定行为的目标客户,即使不是所有的目标个体的行为都符合“预测”的结果。一个诈骗检测模型可能被说成可以预测个别交易是否具有高风险性,即使不是所有的预测的交易都有欺诈行为。

  “预测”这个术语广泛的使用导致了所谓的“预测分析”被作为数据挖掘的总称,并且在业务解决方案中得到了广泛的应用。但是我们应该意识到这不是日常所说的“预测”,我们不能期望预测一个特殊个体的行为或者一个特别的欺诈调查结果。

  那么,在这个意义下的“预测”是什么?分类、回归、聚类和关联算法以及他们集成模型有什么共性呢?答案在于“评分”,这是预测模型应用到一个新样例的方式。模型产生一个预估值或评分,这是这个样例的新信息的一部分;在概括和归纳的基础上,这个样例的可利用信息得到了提高,模式被算法发现和模型具体化。值得注意的是这个新信息不是在“给定”意义上的“数据”,它仅有统计学意义。

  第八,价值律:数据挖掘的结果的价值不取决于模型的稳定性或预测的准确性。

那么,在这个意义下的“预测”是什么?分类、回归、聚类和关联算法以及他们集成模型有什么共性呢?答案在于“评分”,这是预测模型应用到一个新样例的方式。模型产生一个预估值或评分,这是这个样例的新信息的一部分;在概括和归纳的基础上,这个样例的可利用信息得到了提高,模式被算法发现和模型具体化。值得注意的是这个新信息不是在“给定”意义上的“数据”,它仅有统计学意义。   第八,价值律:数据挖掘的结果的价值不取决于模型的稳定性或预测的准确性。

  准确性和稳定性是预测模型常用的两个度量。准确性是指正确的预测结果所占的比例;稳定性是指当创建模型的数据改变时,用于同一口径的预测数据,其预测结果变化有多大(或多小)。鉴于数据挖掘中预测概念的核心角色,一个预测模型的准确性和稳定性常被认为决定了其结果的价值的大小,实际上并非如此。

  体现预测模型价值的有两种方式:一种是用模型的预测结果来改善或影响行为,另一种是模型能够传递导致改变策略的见解(或新知识)。

  对于后者,传递出的任何新知识的价值和准确性的联系并不那么紧密;一些模型的预测能力可能有必要使我们相信发现的模式是真实的。然而,一个难以理解的复杂的或者完全不透明的模型的预测结果具有高准确性,但传递的知识也不是那么有见地;然而,一个简单的低准确度的模型可能传递出更有用的见解。

  准确性和价值之间的分离在改善行为的情况下并不明显,然而一个突出问题是“预测模型是为了正确的事,还是为了正确的原因?”换句话说,一个模型的价值和它的预测准确度一样,都源自它的业务问题。例如,客户流失模型可能需要高的预测准确度,否则对于业务上的指导不会那么有效。相反的是一个准确度高的客户流失模型可能提供有效的指导,保留住老客户,但也仅仅是最少利润客户群体的一部分。如果不适合业务问题,高准确度并不能提高模型的价值。

  模型稳定性同样如此,虽然稳定性是预测模型的有趣的度量,稳定性不能代替模型提供业务理解的能力或解决业务问题,其它技术手段也是如此。

  总之,预测模型的价值不是由技术指标决定的。数据挖掘者应该在模型不损害业务理解和适应业务问题的情况下关注预测准确度、模型稳定性以及其它的技术度量。

  第九,变化律:所有的模式因业务变化而变化。

  数据挖掘发现的模式不是永远不变的。数据挖掘的许多应用是众所周知的,但是这个性质的普遍性没有得到广泛的重视。

  数据挖掘在市场营销和CRM方面的应用很容易理解,客户行为模式随着时间的变化而变化。行为的变化、市场的变化、竞争的变化以及整个经济形势的变化,预测模型会因这些变化而过时,当他们不能准确预测时,应当定期更新。

  数据挖掘在欺诈模型和风险模型的应用中同样如此,随着环境的变化欺诈行为也在变化,因为罪犯要改变行为以保持领先于反欺诈。欺诈检测的应用必须设计为就像处理旧的、熟悉的欺诈行为一样能够处理新的、未知类型的欺诈行为。

  某些种类的数据挖掘可能被认为发现的模式不会随时间而变化,比如数据挖掘在科学上的应用,我们有没有发现不变的普遍的规律?也许令人惊奇的是,答案是即使是这些模式也期望得到改变。理由是这些模式并不是简单的存在于这个世界上的规则,而是数据的反应—-这些规则可能在某些领域确实是静态的。

  然而,数据挖掘发现的模式是认知过程的一部分,是数据挖掘在数据描述的世界与观测者或业务专家的认知之间建立的一个动态过程。因为我们的认知在持续发展和增长,所以我们也期望模式也会变化。明天的数据表面上看起来相似,但是它可能已经集合了不同的模式、(可能巧妙地)不同的目的、不同的语义;分析过程因受业务知识驱动,所以会随着业务知识的变化而变化。基于这些原因,模式会有所不同。

  总之,所有的模式都会变化,因为他们不仅反映了一个变化的世界,也反映了我们变化的认知。

  后记:

  这九条定律是关于数据挖掘的简单的真知。这九条定律的大部分已为数据挖掘者熟知,但仍有一些不熟悉(例如,第五、第六、第七)。大多数新观点的解释都和这九条定律有关,它试图解释众所周知的数据挖掘过程中的背后的原因。

  我们为什么何必在意数据挖掘过程所采用的形式呢?除了知识和理解这些简单的诉求,有实实在在的理由去探讨这些问题。

  数据挖掘过程以现在的形式存在是因为技术的发展—-机器学习算法的普及以及综合其它技术集成这些算法的平台的发展,使得商业用户易于接受。我们是否应该期望因技术的改变而改变数据挖掘过程?最终它会改变,但是如果我们理解数据挖掘过程形成的原因,然后我们可以辨别技术可以改变的和不能改变的。

  一些技术的发展在预测分析领域具有革命性的作用,例如数据预处理的自动化、模型的重建以及在部署的框架里通过预测模型集成业务规则。数据挖掘的九条定律及其解释说明:技术的发展不会改变数据挖掘过程的本质。这九条定律以及这些思想的进一步发展,除了有对数据挖掘者的教育价值之外,应该被用来判别未来任何数据挖掘过程革命性变化的诉求。

  关联规则挖掘过程主要包含两个阶段:第一阶段必须先从资料集合中找出所有的高频项目组(Frequent

  数据挖掘

  Itemsets),第二阶段再由这些高频项目组中产生关联规则(AssociationRules)。

  关联规则挖掘的第一阶段必须从原始资料集合中,找出所有高频项目组(LargeItemsets)。高频的意思是指某一项目组出现的频率相对于所有记录而言,必须达到某一水平。一项目组出现的频率称为支持度(Support),以一个包含A与B两个项目的2-itemset为例,我们可以经由公式(1)求得包含{A,B}项目组的支持度,若支持度大于等于所设定的最小支持度(MinimumSupport)门槛值时,则{A,B}称为高频项目组。一个满足最小支持度的k-itemset,则称为高频k-项目组(Frequentk-itemset),一般表示为Largek或Frequentk。算法并从Largek的项目组中再产生Largek+1,直到无法再找到更长的高频项目组为止。

  关联规则挖掘的第二阶段是要产生关联规则(AssociationRules)。从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(MinimumConfidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。例如:经由高频k-项目组{A,B}所产生的规则AB,其信赖度可经由公式(2)求得,若信赖度大于等于最小信赖度,则称AB为关联规则。

  就沃尔玛案例而言,使用关联规则挖掘技术,对交易资料库中的纪录进行资料挖掘,首先必须要设定最小支持度与最小信赖度两个门槛值,在此假设最小支持度min_support=5%且最小信赖度min_confidence=70%。因此符合此该超市需求的关联规则将必须同时满足以上两个条件。若经过挖掘过程所找到的关联规则「尿布,啤酒」,满足下列条件,将可接受「尿布,啤酒」的关联规则。用公式可以描述Support(尿布,啤酒)>=5%且Confidence(尿布,啤酒)>=70%。其中,Support(尿布,啤酒)>=5%于此应用范例中的意义为:在所有的交易纪录资料中,至少有5%的交易呈现尿布与啤酒这两项商品被同时购买的交易行为。Confidence(尿布,啤酒)>=70%于此应用范例中的意义为:在所有包含尿布的交易纪录资料中,至少有70%的交易会同时购买啤酒。因此,今后若有某消费者出现购买尿布的行为,超市将可推荐该消费者同时购买啤酒。这个商品推荐的行为则是根据「尿布,啤酒」关联规则,因为就该超市过去的交易纪录而言,支持了“大部份购买尿布的交易,会同时购买啤酒”的消费行为。

  从上面的介绍还可以看出,关联规则挖掘通常比较适用与记录中的指标取离散值的情况。如果原始数据库中的指标值是取连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。

  分类

  按照不同情况,关联规则可以进行分类如下:

  1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。

  布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书”,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。

  2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。

  在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关

  数据挖掘

  联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。

  3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。

  在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。

  算法

  1.Apriori算法:使用候选项集找频繁项集

  Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

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

  可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

  2.基于划分的算法

  Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。

  3.FP-树频集算法

  针对Apriori算法的固有缺陷,J.Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。

  应用

  就目前而言,关联规则挖掘技术已经被广泛应用在西方金融行业企业中,它可以成功预测银行客户需求。一旦获得了这些信息,银行就可以改善自身营销。现在银行天天都在开发新的沟通客户的方法。各银行在自己的ATM机上就捆绑了顾客可能感兴趣的本行产品信息,供使用本行ATM机的用户了解。如果数据库中显示,某个高信用限额的客户更换了地址,这个客户很有可能新近购买了一栋更大的住宅,因此会有可能需要更高信用限额,更高端的新信用卡,或者需要一个住房改善贷款,这些产品都可以通过信用卡账单邮寄给客户。当客户打电话咨询的时候,数据库可以有力地帮助电话销售代表。销售代表的电脑屏幕上可以显示出客户的特点,同时也可以显示出顾客会对什么产品感兴趣。

  同时,一些知名的电子商务站点也从强大的关联规则挖掘中的受益。这些电子购物网站使用关联规则中规则进行挖掘,然后设置用户有意要一起购买的捆绑包。也有一些购物网站使用它们设置相应的交叉销售,也就是购买某种商品的顾客会看到相关的另外一种商品的广告。

  但是目前在我国,“数据海量,信息缺乏”是商业银行在数据大集中之后普遍所面对的尴尬。目前金融业实施的大多数数据库只能实现数据的录入、查询、统计等较低层次的功能,却无法发现数据中存在的各种有用的信息,譬如对这些数据进行分析,发现其数据模式及特征,然后可能发现某个客户、消费群体或组织的金融和商业兴趣,并可观察金融市场的变化趋势。可以说,关联规则挖掘的技术在我国的研究与应用并不是很广泛深入。

  近年来,电信业从单纯的语音服务演变为提供多种服务的综合信息服务商。随着网络技术和电信业务的发展,电信市场竞争也日趋激烈,电信业务的发展提出了对数据挖掘技术的迫切需求,以便帮助理解商业行为,识别电信模式,捕捉盗用行为,更好地利用资源,提高服务质量并增强自身的竞争力。下面运用一些简单的实例说明如何在电信行业使用数据挖掘技术。可以使用上面提到的K均值、EM等聚类算法,针对运营商积累的大量用户消费数据建立客户分群模型,通过客户分群模型对客户进行细分,找出有相同特征的目标客户群,然后有针对性地进行营销。而且,聚类算法也可以实现离群点检测,即在对用户消费数据进行聚类的过程中,发现一些用户的异常消费行为,据此判断这些用户是否存在欺诈行为,决定是否采取防范措施。可以使用上面提到的C4.5、SVM和贝叶斯等分类算法,针对用户的行为数据,对用户进行信用等级评定,对于信用等级好的客户可以给予某些优惠服务等,对于信用等级差的用户不能享受促销等优惠。可以使用预测相关的算法,对电信客户的网络使用和客户投诉数据进行建模,建立预测模型,预测大客户离网风险,采取激励和挽留措施防止客户流失。可以使用相关分析找出选择了多个套餐的客户在套餐组合中的潜在规律,哪些套餐容易被客户同时选取,例如,选择了流量套餐的客户中大部分选择了彩铃业务,然后基于相关性的法则,对选择流量但是没有选择彩铃的客户进行交叉营销,向他们推销彩铃业务。

  研究

  由于许多应用问题往往比超市购买问题更复杂,大量研究从不同的角度对关联规则做了扩展,将更多的因素集成到关联规则挖掘方法之中,以此丰富关联规则的应用领域,拓宽支持管理决策的范围。如考虑属性之间的类别层次关系,时态关系,多表挖掘等。近年来围绕关联规则的研究主要集中于两个方面,即扩展经典关联规则能够解决问题的范围,改善经典关联规则挖掘算法效率和规则兴趣性。

  类似区别

  一个经常问的问题是,数据挖掘和OLAP到底有何不同。下面将会解释,他们是完全不同的工具,基于的技术也大相径庭。

  OLAP是决策支持领域的一部分。传统的查询和报表工具是告诉你数据库中都有什么(whathappened),OLAP则更进一步告诉你下一步会怎么样(Whatnext)、和如果我采取这样的措施又会怎么样(Whatif)。用户首先建立一个假设,然后用OLAP检索数据库来验证这个假设是否正确。比如,一个分析师想找到什么原因导致了贷款拖欠,他可能先做一个初始的假定,认为低收入的人信用度也低,然后用OLAP来验证他这个假设。如果这个假设没有被证实,他可能去察看那些高负债的账户,如果还不行,他也许要把收入和负债一起考虑,一直进行下去,直到找到他想要的结果或放弃。

  也就是说,OLAP分析师是建立一系列的假设,然后通过OLAP来证实或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。但是如果分析的变量达到几十或上百个,那么再用OLAP手动分析验证这些假设将是一件非常困难和痛苦的事情。

  数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模式(模型)的正确性,而是在数据库中自己寻找模型。他在本质上是一个归纳的过程。比如,一个用数据挖掘工具的分析师想找到引起贷款拖欠的风险因素。数据挖掘工具可能帮他找到高负债和低收入是引起这个问题的因素,甚至还可能发现一些分析师从来没有想过或试过的其他因素,比如年龄。

  数据挖掘和OLAP具有一定的互补性。在利用数据挖掘出来的结论采取行动之前,你也许要验证一下如果采取这样的行动会给公司带来什么样的影响,那么OLAP工具能回答你的这些问题。

  而且在知识发现的早期阶段,OLAP工具还有其他一些用途。可以帮你探索数据,找到哪些是对一个问题比较重要的变量,发现异常数据和互相影响的变量。这都能帮你更好的理解你的数据,加快知识发现的过程。

  相关技术

  数据挖掘利用了人工智能(AI)和统计分析的进步所带来的好处。这两门学科都致力于模式发现和预测。

  数据挖掘不是为了替代传统的统计分析技术。相反,他是统计分析方法学的延伸和扩展。大多数的统计分析技术都基于完善的数学理论和高超的技巧,预测的准确度还是令人满意的,但对使用者的要求很高。而随着计算机计算能力的不断增强,我们有可能利用计算机强大的计算能力只通过相对简单和固定的方法完成同样的功能。

  一些新兴的技术同样在知识发现领域取得了很好的效果,如神经元网络和决策树,在足够多的数据和计算能力下,他们几乎不用人的关照自动就能完成许多有价值的功能。

  数据挖掘就是利用了统计和人工智能技术的应用程序,他把这些高深复杂的技术封装起来,使人们不用自己掌握这些技术也能完成同样的功能,并且更专注于自己所要解决的问题。

  相关影响

  使数据挖掘这件事情成为可能的关键一点是计算机性能价格比的巨大进步。在过去的几年里磁盘存储器的价格几乎降低了99%,这在很大程度上改变了企业界对数据收集和存储的态度。如果每兆的价格是¥10,那存放1TB的价格是¥10,000,000,但当每兆的价格降为1毛钱时,存储同样的数据只有¥100,000!

  计算机计算能力价格的降低同样非常显著。每一代芯片的诞生都会把CPU的计算能力提高一大步。内存RAM也同样降价迅速,几年之内每兆内存的价格由几百块钱降到现在只要几块钱。通常PC都有64M内存,工作站达到了256M,拥有上G内存的服务器已经不是什么新鲜事了。

  在单个CPU计算能力大幅提升的同时,基于多个CPU的并行系统也取得了很大的进步。目前几乎所有的服务器都支持多个CPU,这些SMP服务器簇甚至能让成百上千个CPU同时工作。

  基于并行系统的数据库管理系统也给数据挖掘技术的应用带来了便利。如果你有一个庞大而复杂的数据挖掘问题要求通过访问数据库取得数据,那么效率最高的办法就是利用一个本地的并行数据库。

计算机计算能力价格的降低同样非常显著。每一代芯片的诞生都会把CPU的计算能力提高一大步。内存RAM也同样降价迅速,几年之内每兆内存的价格由几百块钱降到现在只要几块钱。通常PC都有64M内存,工作站达到了256M,拥有上G内存的服务器已经不是什么新鲜事了。   在单个CPU计算能力大幅提升的同时,基于多个CPU的并行系统也取得了很大的进步。目前几乎所有的服务器都支持多个CPU,这些SMP服务器簇甚至能让成百上千个CPU同时工作。   基于并行系统的数据库管理系统也给数据挖掘技术的应用带来了便利。如果你有一个庞大而复杂的数据挖掘问题要求通过访问数据库取得数据,那么效率最高的办法就是利用一个本地的并行数据库。

  所有这些都为数据挖掘的实施扫清了道路,随着时间的延续,我们相信这条道路会越来越平坦。与数据挖掘有关的,还牵扯到隐私问题,例如:一个雇主可以通过访问医疗记录来筛选出那些有糖尿病或者严重心脏病的人,从而意图削减保险支出。然而,这种做法会导致伦理和法律问题。对于政府和商业数据的挖掘,可能会涉及到的,是国家安全或者商业机密之类的问题。这对于保密也是个不小的挑战。数据挖掘有很多合法的用途,例如可以在患者群的数据库中查出某药物和其副作用的关系。这种关系可能在1000人中也不会出现一例,但药物学相关的项目就可以运用此方法减少对药物有不良反应的病人数量,还有可能挽救生命;但这当中还是存在着数据库可能被滥用的问题。数据挖掘实现了用其他方法不可能实现的方法来发现信息,但它必须受到规范,应当在适当的说明下使用。如果数据是收集自特定的个人,那么就会出现一些涉及保密、法律和伦理的问题。

  更多详细内容,尽在课课家教育,我们期待您的咨询!

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程