数据挖掘是利用业务知识从数据中发现和解释知识(或称为模式)的过程,这种知识是以自然或者人工形式创造的新知识。
当前的数据挖掘形式,是在20世纪90年代实践领域诞生的,是在集成数据挖掘算法平台发展的支撑下适合商业分析的一种形式。也许是因为数据挖掘源于实践而非 理论,在其过程的理解上不太引人注意。20世纪90年代晚期发展的CRISP-DM,逐渐成为数据挖掘过程的一种标准化过程,被越来越多的数据挖掘实践者成功运用和遵循。
虽然CRISP-DM能够指导如何实施数据挖掘,但是它不能解释数据挖掘是什么或者为什么适合这样做。在本文中我将阐述我提出数据挖掘的九种准则或“定律”(其中大多数为实践者所熟知)以及另外其它一些熟知的解释。开始从理论上(不仅仅是描述上)来解释数据挖掘过程。
我的目的不是评论CRISP-DM,但CRISP-DM的许多概念对于理解数据挖掘是至关重要的,本文也将依赖于CRISP-DM的常见术语。CRISP-DM仅仅是论述这个过程的开始。
它定义了数据挖掘的主题:数据挖掘关注解决业务业问题和实现业务目标。数据挖掘主要不是一种技术,而是一个过程,业务目标是它的的核心。 没有业务目标,没有数据挖掘(不管这种表述是否清楚)。因此这个准则也可以说成:数据挖掘是业务过程。
这里定义了数据挖掘过程的一个关键特征。CRISP-DM的一种朴素的解读是业务知识仅仅作用于数据挖掘过程开始的目标的定义与最后的结果的实施,这将错过数据挖掘过程的一个关键属性,即业务知识是每一步的核心。
为了方便理解,我使用CRISP-DM阶段来说明:
总之,没有业务知识,数据挖掘过程的每一步都是无效的,也没有“纯粹的技术”步骤。 业务知识指导过程产生有益的结果,并使得那些有益的结果得到认可。数据挖掘是一个反复的过程,业务知识是它的核心,驱动着结果的持续改善。
这背后的原因可以用“鸿沟的表现”(chasm of representation)来解释(Alan Montgomery在20世纪90年代对数据挖掘提出的一个观点)。Montgomery指出数据挖掘目标涉及到现实的业务,然而数据仅能表示现实的一 部分;数据和现实世界是有差距(或“鸿沟”)的。在数据挖掘过程中,业务知识来弥补这一差距,在数据中无论发现什么,只有使用业务知识解释才能显示其重要 性,数据中的任何遗漏必须通过业务知识弥补。只有业务知识才能弥补这种缺失,这是业务知识为什么是数据挖掘过程每一步骤的核心的原因。
这是数据挖掘著名的格言,数据挖掘项目中最费力的事是数据获取和预处理。非正式估计,其占用项目的时间为50%-80%。最简单的解释可以概括为“数据是困 难的”,经常采用自动化减轻这个“问题”的数据获取、数据清理、数据转换等数据预处理各部分的工作量。虽然自动化技术是有益的,支持者相信这项技术可以减 少数据预处理过程中的大量的工作量,但这也是误解数据预处理在数据挖掘过程中是必须的原因。
数据预处理的目的是把数据挖掘问题转化为格式化的数据,使得分析技术(如数据挖掘算法)更容易利用它。数据任何形式的变化(包括清理、最大最小值转换、增长 等)意味着问题空间的变化,因此这种分析必须是探索性的。 这是数据预处理重要的原因,并且在数据挖掘过程中占有如此大的工作量,这样数据挖掘者可以从容 地操纵问题空间,使得容易找到适合分析他们的方法。
有两种方法“塑造”这个问题 空间。第一种方法是将数据转化为可以分析的完全格式化的数据,比如,大多数数据挖掘算法需要单一表格形式的数据,一个记录就是一个样例。数据挖掘者都知道 什么样的算法需要什么样的数据形式,因此可以将数据转化为一个合适的格式。第二种方法是使得数据能够含有业务问题的更多的信息,例如,某些领域的一些数据 挖掘问题,数据挖掘者可以通过业务知识和数据知识知道这些。 通过这些领域的知识,数据挖掘者通过操纵问题空间可能更容易找到一个合适的技术解决方案。
因此,通过业务知识、数据知识、数据挖掘知识从根本上使得数据预处理更加得心应手。 数据预处理的这些方面并不能通过简单的自动化实现。
这个定律也解释了一个有疑义的现象,也就是虽然经过数据获取、清理、融合等方式创建一个数据仓库,但是数据预处理仍然是必不可少的,仍然占有数据挖掘过程一 半以上的工作量。此外,就像CRISP-DM展示的那样,即使经过了主要的数据预处理阶段,在创建一个有用的模型的反复过程中,进一步的数据预处理的必要的。
机器学习有一个原则:如果我们充分了解一个问题空间(problem space),我们可以选择或设计一个找到最优方案的最有效的算法。一个卓越算法的参数依赖于数据挖掘问题空间一组特定的属性集,这些属性可以通过分析发 现或者算法创建。但是,这种观点来自于一个错误的思想,在数据挖掘过程中数据挖掘者将问题公式化,然后利用算法找到解决方法。事实上,数据挖掘者将问题公 式化和寻找解决方法是同时进行的—–算法仅仅是帮助数据挖掘者的一个工具。
有五种因素说明试验对于寻找数据挖掘解决方案是必要的:
在这里强调一下最后一点,在数据挖掘中改变业务目标,CRISP-DM有所暗示,但经常不易被觉察到。广为所知的CRISP-DM过程不是下一个步骤仅接着上一个步骤的“瀑布”式的过程。事实上,在项目中的任何地方都可以进行任何CRISP-DM步骤,同样商业理解也可以存在于任何一个步骤。业务目标不是简 单地在开始就给定,它贯穿于整个过程。这也许可以解释一些数据挖掘者在没有清晰的业务目标的情况下开始项目,他们知道业务目标也是数据挖掘的一个结果,不是静态地给定。
Wolpert的“没有免费的午餐”理论已经应用于机器学习领域,无偏的状态好于(如一个具体的算法)任何其他可能的问题(数据集)出现的平均状态。这是因为,如果我们考虑所有可能的问题,他们的解决方法是均匀分布的,以至于一个算法(或偏倚)对一个子集是有利的,而对另一个子集是不利的。这与数据挖掘者所知的具有惊人的相似性,没有一个算法适合每一个问题。但是经 过数据挖掘处理的问题或数据集绝不是随机的,也不是所有可能问题的均匀分布,他们代表的是一个有偏差的样本,那么为什么要应用NFL的结论?答案涉及到上 面提到的因素:问题空间初始是未知的,多重问题空间可能和每一个数据挖掘目标相关,问题空间可能被数据预处理所操纵,模型不能通过技术手段评估,业务问题本身可能会变化。由于这些原因,数据挖掘问题空间在数据挖掘过程中展开,并且在这个过程中是不断变化的,以至于在有条件的约束下,用算法模拟一个随机选择的数据集是有效的。对于数据挖掘者来说:没有免费的午餐。
这大体上描述了数据 挖掘过程。但是,在有条件限制某些情况下,比如业务目标是稳定的,数据和其预处理是稳定的,一个可接受的算法或算法组合可以解决这个问题。在这些情况下, 一般的数据挖掘过程中的步骤将会减少。 但是,如果这种情况稳定是持续的,数据挖掘者的午餐是免费的,或者至少相对便宜的。像这样的稳定性是临时的,因为 对数据的业务理解(第二律)和对问题的理解(第九律)都会变化的。
这条规律最早由David Watkins提出。 我们可能预料到一些数据挖掘项目会失败,因为解决业务问题的模式并不存在于数据中,但是这与数据挖掘者的实践经验并不相关。
前文的阐述已经提到,这是因为:在一个与业务相关的数据集中总会发现一些有趣的东西,以至于即使一些期望的模式不能被发现,但其他的一些有用的东西可能会被 发现(这与数据挖掘者的实践经验是相关的);除非业务专家期望的模式存在,否则数据挖掘项目不会进行,这不应感到奇怪,因为业务专家通常是对的。
然而,Watkins提出一个更简单更直接的观点:“数据中总含有模式。”这与数据挖掘者的经验比前面的阐述更一致。这个观点后来经过Watkins修正,基于客户关系的数据挖掘项目,总是存在着这样的模式即客户未来的行为总是和先前的行为相关,显然这些模式是有利可图的(Watkins的客户关系管理定律)。但是,数据挖掘者的经验不仅仅局限于客户关系管理问题,任何数据挖掘问题都会存在模式(Watkins的通用律)。
Watkins的通用律解释如下:
总结这一观点:数据中总存在模式,因为在这过程中不可避免产生数据这样的副产品。为了发掘模式,过程从(你已经知道它)—–业务知识开始。
利用业务知识发现模式也是一个反复的过程;这些模式也对业务知识有贡献,同时业务知识是解释模式的主要因素。在这种反复的过程中,数据挖掘算法简单地连接了业务知识和隐藏的模式。
如果这个解释是正确的,那么大卫律是完全通用的。除非没有相关的数据的保证,否则在每个定义域的每一个数据挖掘问题总是存在模式的。
第 六,洞察律:数据挖掘增大对业务的认知
数据挖掘是如何产生洞察力的?这个定律接近了数据挖掘的核心:为什么数据挖掘必须是一个业务过程而不是一个技术过程。业务问题是由人而非算法解决的。数据挖 掘者和业务专家从问题中找到解决方案,即从问题的定义域上达到业务目标需要的模式。数据挖掘完全或部分有助于这个认知过程。数据挖掘算法揭示的模式通常不 是人类以正常的方式所能认识到的。综合这些算法和人类正常的感知的数据挖掘过程在本质上是敏捷的。在数据挖掘过程中,问题解决者解释数据挖掘算法产生的结 果,并统一到业务理解上,因此这是一个业务过程。
这类似于“智能放大器”的概念,在早期的人工智能的领域,AI的第一个实际成果不是智能机器,而是被称为“智能放大器”的工具,它能够协助人类使用者提高获取有效信息的能力。数据挖掘提供一个类似的“智能放大器”,帮助业务专家解决他们不能单独完成的业务问题。
总之,数据挖掘算法提供一种超越人类以正常方式探索模式的能力,数据挖掘过程允许数据挖掘者和业务专家将这种能力融合在他们的各自的问题的中和业务过程中。
“预测”已经成为数据挖掘模型可以做什么的可接受的描述,即我们常说的“预测模型”和“预测分析”。这是因为许多流行的数据挖掘模型经常使用“预测最可能的结果”(或者解释可能的结果如何有可能)。这种方法是分类和回归模型的典型应用。
但是,其他类型的数据挖掘模型,比如聚类和关联模型也有“预测”的特征。这是一个含义比较模糊的术语。一个聚类模型被描述为“预测”一个个体属于哪个群体,一个关联模型可能被描述为基于已知基本属性“预测”一个或更多属性。
同样我们也可以分析“预测”这个术语在不同的主题中的应用:一个分类模型可能被说成可以预测客户行为—-更加确切的说它可以预测以某种确定行为的目标客户,即使不是所有的目标个体的行为都符合“预测”的结果。一个诈骗检测模型可能被说成可以预测个别交易是否具有高风险性,即使不是所有的预测的交易都有欺诈行为。
“预测”这个术语广泛的使用导致了所谓的“预测分析”被作为数据挖掘的总称,并且在业务解决方案中得到了广泛的应用。但是我们应该意识到这不是日常所说的“预测”,我们不能期望预测一个特殊个体的行为或者一个特别的欺诈调查结果。
那么,在这个意义下的“预测”是什么?分类、回归、聚类和 关 联算法以及他们集成模型有什么共性呢?答案在于“评分”,这是预测模型应用到一个新样例的方式。模型产生一个预估值或评分,这是这个样例的新信息的一部 分;在概括和归纳的基础上,这个样例的可利用信息得到了提高,模式被算法发现和模型具体化。值得注意的是这个新信息不是在“给定”意义上的“数据”,它仅 有统计学意义。
准确性和稳定性是预测模型常用的两个度量。准确性是指正确的预测结果所占的比例;稳定性是指当创建模型的数据改变时,用于同一口径的预测数据,其预测结果变 化有多大(或多小)。鉴于数据挖掘中预测概念的核心角色,一个预测模型的准确性和稳定性常被认为决定了其结果的价值的大小,实际上并非如此。
体现预测模型价值的有两种方式:一种是用模型的预测结果来改善或影响行为,另一种是模型能够传递导致改变策略的见解(或新知识)。
对于后者,传递出的任何新知识的价值和准确性的联系并不那么紧密;一些模型的预测能力可能有必要使我们相信发现的模式是真实的。然而,一个难以理解的复杂的 或者完全不透明的模型的预测结果具有高准确性,但传递的知识也不是那么有见地;然而,一个简单的低准确度的模型可能传递出更有用的见解。
准确性和价值之间的分离在改善行为的情况下并不明显,然而一个突出问题是“预测模型是为了正确的事,还是为了正确的原因?” 换句话说,一个模型的价值和它的预测准确度一样,都源自它的业务问题。例如,客户流失模型可能需要高的预测准确度,否则对于业务上的指导不会那么有效。相 反的是一个准确度高的客户流失模型可能提供有效的指导,保留住老客户,但也仅仅是最少利润客户群体的一部分。如果不适合业务问题,高准确度并不能提高模型 的价值。
模型稳定性同样如此,虽然稳定性是预测模型的有趣的度量,稳定性不能代替模型提供业务理解的能力或解决业务问题,其它技术手段也是如此。
总之,预测模型的价值不是由技术指标决定的。数据挖掘者应该在模型不损害业务理解和适应业务问题的情况下关注预测准确度、模型稳定性以及其它的技术度量。
数据挖掘发现的模式不是永远不变的。数据挖掘的许多应用是众所周知的,但是这个性质的普遍性没有得到广泛的重视。
数据挖掘在市场营销和CRM方面的应用很容易理解,客户行为模式随着时间的变化而变化。行为的变化、市场的变化、竞争的变化以及整个经济形势的变化,预测模型会因这些变化而过时,当他们不能准确预测时,应当定期更新。
数据挖掘在欺诈模型和风险模型的应用中同样如此,随着环境的变化欺诈行为也在变化,因为罪犯要改变行为以保持领先于反欺诈。欺诈检测的应用必须设计为就像处理旧的、熟悉的欺诈行为一样能够处理新的、未知类型的欺诈行为。
某些种类的数据挖掘可能被认为发现的模式不会随时间而变化,比如数据挖掘在科学上的应用,我们有没有发现不变的普遍的规律?也许令人惊奇的是,答案是即使是这些模式也期望得到改变。理由是这些模式并不是简单的存在于这个世界上的规则,而是数据的反应—-这些规则可能在某些领域确实是静态的。
然而,数据挖掘发现的模式是认知过程的一部分,是数据挖掘在数据描述的世界与观测者或业务专家的认知之间建立的一个动态过程。因为我们的认知在持续发展和增 长,所以我们也期望模式也会变化。明天的数据表面上看起来相似,但是它可能已经集合了不同的模式、(可能巧妙地)不同的目的、不同的语义;分析过程因受业 务知识驱动,所以会随着业务知识的变化而变化。基于这些原因,模式会有所不同。
总之,所有的模式都会变化,因为他们不仅反映了一个变化的世界,也反映了我们变化的认知。
这九条定律是关于数据挖掘的简单的真知。这九条定律的大部分已为数据挖掘者熟知,但仍有一些不熟悉(例如,第五、第六、第七)。大多数新观点的解释都和这九条定律有关,它试图解释众所周知的数据挖掘过程中的背后的原因。
我们为什么何必在意数据挖掘过程所采用的形式呢?除了知识和理解这些简单的诉求,有实实在在的理由去探讨这些问题。
数据挖掘过程以现在的形式存在是因为技术的发展—-机器学习算法的普及以及综合其它技术集成这些算法的平台的发展,使得商业用户易于接受。我们是否应该期望因技术的改变而改变数据挖掘过程?最终它会改变,但是如果我们理解数据挖掘过程形成的原因,然后我们可以辨别技术可以改变的和不能改变的。
一些技术的发展在预测分析领域具有革命性的作用,例如数据预处理的自动化、模型的重建以及在部署的框架里通过预测模型集成业务规则。数据挖掘的九条定律及其 解释说明:技术的发展不会改变数据挖掘过程的本质。这九条定律以及这些思想的进一步发展,除了有对数据挖掘者的教育价值之外,应该被用来判别未来任何数据 挖掘过程革命性变化的诉求。