数据挖掘过程 第1章将数据挖掘的良性循环描述为一个业务流程,其中把数据挖掘划分为4个阶段: (1) 识别问题 (2) 将数据转换为信息 (3) 采取行动 (4) 度量结果 本章的重点转向把数据挖掘作为技术过程,把识别业务问题转变为将业务问题转化为数据挖掘问题。同时,第二个阶段——把数据转换为信息,将扩展到几个主题,包括假设检验(hypothesis testing)、模型构建(model building)和模式发现(pattern discovery)。本章所介绍的思想和最佳实践将在本书的剩余部分进一步阐明。本章的目的是为了在一个地方把不同类型的数据挖掘放在一起介绍。 避免打破数据挖掘良性循环的最好方式是了解它可能会失败的方式,并采取预防措施。多年来,本书作者曾遇到过数据挖掘项目发生错误的许多方式。本章一开始讨论其中的一些陷阱,剩余部分介绍数据挖掘的过程。后续章节涵盖了数据挖掘方法的各个方面,它们特定于不同类型的数据挖掘——有指导数据挖掘(directed data mining)和无指导数据挖掘(undirected data mining)。本章重点介绍这些方法的共同之处。 介绍了三个主要的数据挖掘类型,首先是简单的方法——通常通过使用特设查询检验假设,接着介绍更加复杂的活动,例如可用于评分的模型构建,以及使用无指导数据挖掘技术的模式发现。这一章的主题是从业务目标的明确说明,转移到为实现目标所需的对数据挖掘任务的明确理解,以及适合该任务的数据挖掘技术。 3.1 会出什么问题 数据挖掘是一种从过往中学习以便在将来更好地做决定的方法。本章中描述的最佳实践旨在避免两个不可取的学习过程结果: ● 学习的东西不真实。 ● 学习的东西为真,但是无用。 古代水手学会了如何避免为保护西西里和意大利大陆之间狭窄海峡的锡拉岩礁(Scylla)岩石和卡律布迪斯(Charybdis)漩涡。像学会避免这些威胁的古代水手们一样,数据挖掘人员也需要知道如何避免常见的危险。 3.1.1 学习的东西不真实 学习的东西不真实比学习的东西无用更危险,因为可能会基于不正确的信息做出重要的业务决策。数据挖掘结果经常看上去是可靠的,因为它们是基于实际的数据,以看似科学的态度进行处理。这种可靠性看上去非常具有欺骗性。数据可能不正确或者与手头的问题无关。发现的模式可能反映了过去的业务决策或者什么都不是。诸如汇总之类的数据转换可能会破坏或隐藏重要信息。下面将讨论一些会导致虚假结论的更常见的问题。 警告:当数据不正确或根本不相关时,即使采用最先进的技术,最认真细致的分析也会产生错误的结果。在信息技术的圈子里,有一个流行的格言:“无用输入,无用输出(garbage in,garbage out)”。 1. 模式可能不代表任何基本规则 俗话说:数字不会说谎,但说谎者会玩弄数字。当在数据中发现模式时,数字不会为了提议不真实的东西而说谎。可用来构造模式的方法如此众多,从而给定任何随机的数据点集合,只要检查足够长的数据,总能发现一个模式。人类严重依赖于我们生活中的模式,即使它们不存在我们也会倾向于看到它们。我们仰望夜空,映入眼帘的并非星星的随意排列,而是北斗七星、南十字星座或猎户座腰带。有人甚至看到可用来预测未来的占星模式和预兆。普遍接受的古怪阴谋论是人类需要发现模式的进一步证据。 人类演化成对模式如此亲切的原因可能在于模式通常反映了世界运转的一些基本事实。月相、季节变幻、昼夜不断交替,甚至最喜爱的电视节目定期在一周同一天的同一时间播放也是有用的,因为它们稳定从而可预测。我们可以使用这些模式来决定什么时候种植番茄是安全的,什么时候吃早餐,以及如何安排DVR。其他模式显然没有任何预测能力。如果一枚硬币连续出现5次头向上,那么在第6次它仍有50%的机会掷出尾朝上。 数据挖掘人员的挑战在于要找出哪些模式有益,哪些无益。考虑以下模式,所有这些模式都曾在大众媒体文章中被引用过,就像它们有预测价值: ● 在野党(总统竞选失败的政党)在非大选年选举中会获得国会席位。 ● 当美国职业棒球联盟赢得世界职业棒球大赛时,共和党会继续把持着白宫。 ● 华盛顿红人队赢得最后一场主场比赛时,执政党继续执掌白宫。 ● 在美国总统竞选中,高个子的男人常常会赢。 第一个模式(涉及非选举年选举的那一个)在纯粹的政治术语下是可解释的。每隔四年,略高于半数的美国选民都很兴奋地投票选举总统候选人。几个月后,候选人接管而失望就此开始——政客们根本不能兑现选民所期望的所有承诺。两年后的国会选举会出现反弹,通常是由感到失望的支持者不投票导致的结果。因为该模式有一个基本的解释,似乎很可能会持续到将来,表明它有预测价值。 而后两个所谓的预言——涉及体育赛事的那两个预言,看上去明显没有预测价值。无论共和党人和美国联盟在过去可能已经共享过多少次胜利(作者没有研究过这一点),但是没有理由可以预测在将来会继续关联。 那候选人的高度呢?自1948年杜鲁门(其身材矮小,但比杜威高)当选之后,只有卡特击败福特和布什打败克里是较为矮小的候选人赢得普选的两次选举。在2000年的选举中,如果我们假设模式是与赢得普选而非选举人票相关,那么戈尔的6英尺1英寸对布什总统的6英尺还是符合该模式。在2008年,打篮球的奥巴马击败了较为矮小的麦凯恩。高度看上去与当总统这份工作毫不相关。然而,我们的语言展示了“身高歧视”:我们把仰视看成是表示尊敬的姿态,而俯视表示蔑视。身高与更好的童年营养相关,其反过来会提高智商以及其他社会成功的指标。如本章所述,决定规则是否稳定和具有预测性的正确方式是比较它在多个从同一总体中随机选择的样本中的性能。关于总统高度的案例,作者把它留给读者作为练习。通常情况下,任务中最难的部分是收集数据——在Google年代之前,确定过去几个世纪以来不成功总统候选人的高度很不容易。 发现的模式无法泛化的术语是过拟合(overfitting)。过拟合会导致模型不稳定,它可能今天工作但是明天不工作;或者在一个数据集上工作,但在另一个数据集上不工作。建立稳定的模型是数据挖掘方法的主要目标。 2. 模型集可能不反映相关的总体 模型集(model set)是用来创建数据挖掘模型的数据,它必须描述过去发生了什么。模型的质量只能与用来创建它的数据一样。为了使推理有效,模型集必须反映模型用来描述、分类或者评分的总体。若对没有正确地反映总体的样本进行评分,则会导致总体有偏置(biased)。 有偏置的模型集会导致学习的东西不真实。除非考虑了偏置,否则结果模型也会有偏置。偏置很难避免。考虑: ● 客户不像潜在客户。 ● 调研响应者不像非响应者。 ● 阅读电子邮件的人不像那些不阅读电子邮件的人。 ● 在网站上注册的人不像那些不注册的人。 ● 获取之后,来自获取公司的客户不一定像获取需求方的客户。 ● 没有缺失值的记录与具有缺失值的记录反映了不同的总体。 考虑第一点。客户不像潜在客户,因为他们代表了那些对任何过去用来吸引客户的信息、优惠以及促销都积极响应的人。对当前客户的研究也可能会给出相同的提议。如果过去的活动都是针对富有的城市消费者,那么当前客户与一般人群的任何比较都很可能会显示客户往往是富有的城市人群。这样的模型可能会错过在中等收入郊区的机会。 提示:仔细选择和采样数据集对于数据挖掘的成功至关重要。 使用有偏置的样本比只是错失营销机会的后果更为糟糕。在美国,有一个“歧视”的历史,在某些社区(通常是低收入社区或少数群体社区)存在拒绝写贷款或保险政策的非法做法。对于一家有歧视历史的公司,如果从它的历史数据中搜索模式,那么将显示某些社区的人根本不可能是客户。如果未来的营销工作是基于这样的发现,那么数据挖掘将导致非法和不道德做法延续下去。 3. 数据的详细程度有误 在多个行业中,作者曾经被告知在客户离开之前的那个月内使用量通常会下降。经过仔细观察之后,这可能是一个学习的东西不真实的例子。图3-1显示了一组移动电话订户每月使用的分钟数,这些用户被记录为在9月份停止使用。前7个月,订户每个月平均使用约100分钟。在第8个月时,其使用量下降为约一半左右。再下一个月,则根本不存在使用,因为订户已经停止了。这说明由使用下降触发的营销努力也许能够保存这些客户。 这些订户似乎符合在放弃服务之前一个月减少使用的模式。表象往往具有欺骗性。这些客户在第9个月没有使用是因为实际的停止日期是在第8个月。平均而言,停止日期是这个月的中间。在停止之前,这些客户继续以恒定的速率使用服务,大概是因为在那一天,客户开始使用与其竞争的服务。假定的使用下降区间实际上并不存在,因此当然不会为保留客户提供一个机会之窗。这似乎是一个领先指标,但实际上却是一个滞后指标。 图3-1 第8个月的使用下降是否能够预测在第9个月的流失 图3-2显示了另一个由聚合引起混乱的例子。与8月份和9月份相比,10月份的销售似乎下降了。图片来自一家只有当金融市场开放的日子才有销售活动的企业。因为在2003年周末和假日的安排方式,10月的贸易日比8月和9月的要少。该事实仅仅考虑了销售的整体下降。 图3-2 10月份的销售是否真的下跌了 在前面的示例中,聚合导致了混淆。没有聚合到适当的级别也可能会导致混淆。一个家庭成员可能会有一个余额较低和无活动的支票账户,而相同家庭的另一个成员有多个大账户。把小账户持有者看做是低价值的客户可能会导致与整个家庭的关系处于危险境地。在这种情况下,总的余额数可能比其中任何一个账户的余额更为重要。 提示:当汇总数据时,选择合适的聚合级别,使得不会隐藏在一段时期内的重要模式。一个每周具有很强变化的企业不应报告每月汇总的活动。 3.1.2 学习的东西真实但是无用 尽管不如学习的东西不真实那么危险,但是学习的东西无用更为常见。它可能会以几种不同的方式发生。 1. 学习的东西众所周知(或者应该知道) 数据挖掘应该提供新的信息。在数据中许多最强的模式都表示了众所周知的事情。过了退休年龄的人往往不会响应退休储蓄计划的优惠。生活在送货区之外的人们不会成为报纸订户。尽管他们可能响应订阅优惠,但是永远不会启动服务。自己不拥有车的人不会购买汽车保险。 数据挖掘还可以发现那些应该已经知道为真的模式。在一个有趣的例子中,本书作者们正致力于一个分析杂货店数据中的购买模式的项目。当第一组数据到达时,我们首先发现会被同时购买的产品。首批组合包括“鸡蛋和肉”、“鸡蛋和牛奶”以及“鸡蛋和苏打水”。后续的规则类似——鸡蛋忙于与杂货店里的每款产品同时下架。首先,这似乎是数据中的一个潜在问题。其次,我们的同事之一注意到该数据来自复活节前一周。事实上,当人们在复活节之前去杂货店购物时,他们常常会为复活节假期购买鸡蛋进行涂色或者隐藏。 最强的模式通常会反映业务规则。如果数据挖掘“发现”具有匿名呼叫阻止服务的人也有来电显示,那么原因可能是因为匿名呼叫阻止只是作为包括来电显示在内的捆绑服务的一部分。如果数据挖掘“发现”维修协议与大型设备一起出售(如Sears曾经发现的一样),那么这是因为维修协议几乎总是在设备之后出售。这些模式不仅无趣,而且它们的强度可能会阻碍不太明显但更具可操作性的模式。 不过,学习的东西众所周知确实会起到一个有益的作用。它表明,在技术层面上数据挖掘技术有效,而且数据相当准确。即使没有帮助,这也多少会令人有所安慰。当数据挖掘技术足以发现众所周知是真实的事情时,那么有理由相信它们也能发现更有用的模式。 2. 学习的东西不可用 数据挖掘能够发现真实且先前未知的关系,但是仍然难以使用。有时这个问题是可控的。客户的无线呼叫模式可能与某些固定长途包类似,但是由于法律限制,提供这两种服务的公司可能不允许利用这个事实。类似地,客户的信用记录对于未来的保险索赔可能具有预测性,但是监管机构可能禁止基于这种信息做出承保的决定。或者,在一个更普遍的例子中,一个人的遗传物质可能会表明对某些疾病的倾向性——在美国和大多数欧洲国家的保险公司都禁止使用这一特征。 其他时候,数据挖掘发现的重要结果超出了公司的控制范围。相比其他气候,产品可能更加适合于某些气候,但是天气很难改变。由于地形的缘故,移动电话服务在一些地区可能会更糟,但是这也很难改变。 提示:客户流失的研究表明,客户离开的一个重要预测点是获取他们的方式。对于现有客户而言,这个发现已经太迟而不能倒回去改变,但是这并非无用的信息。通过改变混合获取渠道为能带来长期持续客户的渠道,可以减少未来的流失。 数据挖掘人员必须注意避开锡拉岩礁,以免学习的东西不真实,以及避开卡律布迪斯,以免学习任何无用的东西。第5章和第12章介绍的方法旨在确保数据挖掘的努力会导致稳定的模型,从而能够成功地解决业务问题。 3.2 数据挖掘类型 第1章定义数据挖掘为“探索和分析大量数据以产生有意义的结果”。这是一个广泛的定义,足以包括许多不同的方法。主要有三种类型: ● 假设检验(Hypothesis testing) ● 有指导数据挖掘(Directed data mining) ● 无指导数据挖掘(Undirected data mining) 假设检验的目标是使用数据来回答问题或掌握知识。有指导数据挖掘的目标是构建一个模型,其能够解释或预测一个或多个特定的目标变量。无指导数据挖掘的目标是找到全部的模式,而不是绑定到一个特定的目标。在一个数据挖掘项目过程中,你可以采用这些类型中的任何一种类型或者所有类型,这取决于问题的性质和你对数据的熟悉程度。 虽然这三种类型的数据挖掘有一些技术性的差异,但是它们也有很多共同之处。在第5章有指导数据挖掘上下文下讨论的许多主题对于假设检验和发现模式也非常重要。事实上,有指导数据挖掘方法的前三步——把业务问题转化成数据挖掘问题,选择适当的数据,以及了解数据——也同样可以在本章介绍。 3.2.1 假设检验 假设检验几乎是所有数据挖掘努力的一部分。数据挖掘人员通常在以下两个方法之间来回处理,首先构造出对观察行为的可能解释(通常借助业务专家的帮助),同时让那些假设来决定待分析的数据,然后让数据提出新的假设来检验。 假设是提出的一个解释,可以通过分析数据检验其有效性。这些数据可以简单地通过观测收集或者通过试验(如一个营销活动测试)来生成。假设检验有时会发现指导公司行动的假设不正确。例如,一家公司的广告是基于对产品或服务目标市场以及响应性质的一些假设。这些假设能否通过实际的响应来证明是值得检验的。 取决于假设的不同,这可能意味着解释从一个简单查询返回的单一值、费力地阅读通过购物篮分析生成的关联规则集合、决定回归模型发现的相关的显著性,或者设计对照实验。在所有情况下,有必要仔细思考以确保结果不会以意外的方式发生偏置。对数据挖掘结果的适当评价需要分析知识和业务知识。由于这些评价不是同一个人所能给出的,因此好好利用新的信息需要跨职能的合作。 本质上假设检验是特设的,但是这个过程有一些可辨认的步骤,第一步也是最重要的一步在于产生好的假设来检验。接下来是查找或生成数据以证实或推翻假设。 1. 生成假设 生成假设的关键在于从整个机构获得多样性的输入,并且在适当的时候,也可以从机构外部获得数据。局外人可能会质疑内部人员认为理所当然的事——因此可能提供宝贵的见解。通常,启动思想交流所需的一切就是对问题本身的一个明确说明——如果它在以前不被认为是一个问题的话,尤其需要如此。 超出人们想象的是,问题不被重视的原因通常在于它们没有被用来评估性能的度量指标所覆盖。如果公司一直根据每个月新完成的销售量来考察它的销售人员,那么推销员可能从来就不会太多地思考这样的问题:新客户会在多长时间内保持活跃,或者他们会在维持关系过程中花多少钱。但是,当被问到正确的问题时,销售人员可能会洞察营销(由于其与客户的更大距离)所漏掉的客户行为。 目标是提出既可检验又可操作的想法。考虑以下假设: ● 大多数接受保留优惠的客户无论如何将保持。 ● 拥有高中阶段孩子的家庭更可能比其他家庭对家庭净值贷款提议作出响应。 ● 购买更多不同产品类型的客户有较高的总体开支。 所有这些主张可能是或可能不是真实的,并且在每种情况下,知道答案会暗示一些具体的行动。如果第一个假设是真的,那么停止花钱来吸引没有离开风险的客户,或者发现一种更好的方式,把保留优惠定位到真正打算离开的客户。如果第二个假设是真的,那么继续围绕这一群体开展目前的营销。如果第三个假设是正确的,那么鼓励销售人员进行更多的交叉销售。 2. 已有数据检验假设 常常可以通过在已有的历史数据中寻找证据来检验新的假设。例如,把医疗设备卖给医院的制造商会有如下假设:购买多种类型产品的客户往往会花更多的钱。首先,他们查看具有不同产品数量的平均销售,生成如图3-3所示的图表。 该图清楚地表明购买多种产品的客户会生成更大的平均客户收益,但是它没有显示交叉销售会在多大程度上驱动额外收益。较大的机构自然会花更多的钱,也许他们还更有可能需要多个类别的产品。或许高收益和多个产品类别都是由客户大小所决定的——这不是公司的控制范围。同样有一个可检验的假设:根据大小和类型对客户分组,并寻找每组客户中不同产品和收益之间的关系。 图3-3 购买更多产品类型的客户会花更多的钱 检验长期持有的信念可能会更难,因为历史数据反映了过去所给出的任何假设。如果拥有高中孩子的家庭一直是某一特定产品的目标,那么这一事实将在这些家庭较高的采用率上得到反映。这并不能证明他们是最可能响应的群体;其他一些团体,如小生意人,甚至会产生更多的响应。在这种情况下,进行对照实验是可取的。 在收集什么以及如何收集数据方面的细小变化能够极大地增加其分析的价值。例如,使用不同的Web地址或在不同广告中的呼入数,以及跟踪每个响应的渠道。 提示:每次当公司请求其客户的响应时,无论是通过广告或更直接的通信形式,都有机会收集信息。在通信设计方面的细微变化,例如包含一种方法来识别当潜在客户作出响应时的渠道,都可以极大地提高收集到的数据价值。 3. 假设检验和实验 虽然许多假设可以根据历史数据进行检验,但是还有许多假设不能如此检验。例如,我们采取如下假设:接受了一个保留优惠的客户将在无论是否有额外诱惑时都将保持。历史数据给出了谁收到了优惠、谁接受了优惠,以及谁最终离开了,但是除非活动设计为一个带有对照组的适当实验,否则它不会回答如果不提供优惠会发生什么的问题。这个问题不能通过比较收到和没有收到优惠的客户的保留情况来回答,因为这两个组几乎肯定会存在系统方法上的不同。 如果向那些被认为具有高流失风险的客户提供优惠,那么即使优惠确实保住了一大批客户,但是没有得到优惠的人可能依然会有更好的保留。另一方面,如果向被认为特别有价值的客户提供优惠,那么他们可能会比因为某些原因而对优惠不做任何事的未接收者具有更好的保留。除了测试的事情之外,该方案有效性的合理测试需要比较两组在各方面都类似的客户。那样的数据可能不会自然产生,所以你必须设计实验来生成它。实验设计和分析是一个广泛的统计领域。本小节介绍常见营销测试细节中的一些关键点。 1) 检验和控制 最基本的实验设计需要创建两个组。其中一组称为检验组(test group)或处置组(treatment group),其会接受某种处置,如电子邮件或电话等。另一组称为控制组(control group),不接受处置。选择的两个组尽可能相似——相同的平均年龄、相同的平均收入、相同的男女分布以及相同的客户持续期分布等。这听起来可能会很困难,但其实不然。基本上,选择一个总体组,然后随机分为检验组和控制组。只要检验组和控制组足够大,概率法则会确保这两组彼此相似(且与总体相似)。如果你想要确保这些组代表一些关键特征(比如,性别和持续期),那么根据这些字段对总体排序,然后每次把第n个记录放入控制组。 实验后,两个组之间的任何显著性区别都可以自信地归因于处置。第4章说明统计意义的显著性概念以及如何测试它。 2) A/B检验 A/B检验比较两个(或可能更多的)处置。客户随机分配到A组或B组。两个组接受不同的处置,如不同的广告信息、Web页面布局、价格或者支付选项。面向分析的公司经常运行A/B检验以确定甚至看起来微小变化的影响,因为小的改变可以起到巨大和意料之外的作用。 一家网上零售公司发现添加一个客户可以输入优惠劵代码的框,导致了实施购买的客户比例显著(6.5%)减少。大多数客户没有优惠券,显然邀请提供折扣代码会造成人们认为他们得到了一个坏的对待。也许这种购物者会被激励在Google上搜索一张优惠券,在这个过程中可能找到一个更好的价格。 A/B检验通常与直接营销和基于Web的零售相关,因为在这些环境中控制哪些客户得到哪些信息相对简单。A/B检验对于非直接类型的广告也有用,比如广告牌、广播、电视等。其中的技巧是在相似的市场运行不同的活动。这种试验称为配对测试(paired test),因为它们依赖于为测试目的而尽可能相似的不同市场(或商店位置或任何其他事物)对。这一对中的一半得到处理,而另一半处于控制之下。第9章对配对测试进行了更详细的讨论。 3) 冠军/挑战者检验 A/B检验的常见形式是比较新的处置(挑战者)和已有的处置(冠军)。这种思想常常是应用于对客户打分的数据挖掘模型。只有当新模型表明其比旧模型更好时才会被采纳。 Amazon.com特别擅长这种形式的A/B检验。在其网站上的一切——从产品评论和产品说明的位置到用户评论的数量和关键字——都已经针对“冠军”最佳布局进行了测试。在Amazon的活动环境中,随机选择网站访问者作为测试组来查看一个修改布局。几个小时或几天后,收集的资料足以说明布局的测试修改是否会产生比冠军布局更高或更低的销售。如果改进非常显著,那么测试将成为新的冠军。 4. 假设检验中的案例研究:度量错误的事情 这是一家公司的故事,其为零售网站开发推荐软件。它的委托人,即零售商,在某些特定的Web页面上留下空白区域,如产品页面、购物车,以及结账页面等。当客户在网站购物时,该推荐软件会提供产品推荐来填补空白。当客户购买推荐的物品时,该软件公司获得佣金。当然,目标是提高网站的整体销售,这将有利于零售商,从而鼓励他们继续使用该推荐软件。 该软件公司遇到了一个难题:根据其所有的度量指标,它的推荐在年复一年地改进。更多的客户点击和购买了推荐的物品。然而,零售商抱怨收益的增长不如预期。在一些一对一测试(head-to-head test)中,这款复杂的推荐软件甚至不如委托人所开发的简单的通用规则。 这不是一个有指导数据挖掘的好问题。目标变量是什么?它也不是无指导模式发现的好对象,模式实在太明显了。它对于假设检验而言最适合不过。数据挖掘人员的工作是思考可能有什么问题,然后测试结果假设。 该软件公司请求数据挖掘人员(作者成立的咨询公司)来帮助搞清楚这个难题。我们获得了A/B检验的数据,其产生了令人失望的结果。在A/B检验中,随机选择一半消费者从该公司收到建议,而另一半收到来自零售商的竞争建议。该数据包括一个定单表,其中包含了每种物品的详细信息,如价格、产品类别,而且在消费者点击产品推荐时,还包括一个点击ID。对于每个点击,点击表显示了是几个推荐算法中的哪一个生成了该推荐,以及当作出推荐时,消费者正在看什么物品。 使用简单的SQL查询,我们发现测试中我们委托人一方的客户的确点击了更多的推荐,而且,在双方的测试中,点击客户更有可能购买。更多的采购意味着赚更多的钱。更多的钱意味着零售商很高兴。 给定这些度量指标,A方——我们的委托人一方——怎么会输呢?第一个线索是A方点击物品的平均价格比B方低。我们的第一个假设是A推荐的是与B不同的产品混合,但是这很容易被推翻。我们不断地尝试其他假说,直到最终找到了两个假设,它们在一起能够解释发生了什么: ● A方的推荐产生了更多的替代,且交叉销售更少。 ● 许多A方的推荐是向下销售。 交叉销售是指除了已经在考虑的产品之外,消费者还会购买推荐产品,从而产生更大的购买总额。替代是指消费者购买推荐产品以代替原来考虑的产品。交叉销售对零售商更有价值,因为它会增加客户的支出总额。然而,我们的委托方仅仅是基于最终的消费者是否购买其推荐产品。零售商设计的推荐是为了产生交叉销售。而且,当它确实在推荐替代时,其推荐的产品几乎都是更贵的东西——向上销售。通过比较,我们委托方的推荐平均来说是向下销售。 我们的结论是委托方度量了错误的事情。随着时间的推移,它的推荐在吸引更多的点击方面得到了改进,但是点击自身是无用的。为了吸引点击,最简单的方法是向消费者展示比他们正在看的物品更便宜的替代。这种行为为我们的委托方生成佣金,但是(无意中)导致零售商终止销售更为便宜的物品,以及终止为此优惠支付佣金。我们建议软件公司改变佣金结构,从而它可以根据增量收益而非点击获得回报,这是一个使用假设检验类型数据挖掘的宝贵结果。 3.2.2 有指导数据挖掘 有指导数据挖掘是另一种类型的数据挖掘。有指导数据挖掘的重点是一个或多个目标变量,而且历史数据中的实例包含了所有这些目标值。换句话说,有指导数据挖掘不仅寻找数据中的任何模式,而且还会寻找能够解释目标值的模式。一个非常典型的例子是保留模型。历史数据包含活跃客户实例以及其他已经停止的客户实例。有指导数据挖掘的目标是找到一些模式,能够区分导致客户离开和客户留下来的因素。 在统计中,术语“预测建模(predictive modeling)”经常用于有指导数据挖掘。依作者看来,这多少有一点用词不当,因为虽然预测建模绝对是有指导数据挖掘的一个方面,但是它同样有其他的方面。基于目标变量和输入之间的时间关系,第5章区分了预测建模和剖析建模(profile modeling)。预测建模特指目标来自一个晚于输入的时间;剖析建模特指目标和输入来自相同的时间。 3.2.3 无指导数据挖掘 无指导数据挖掘是一种不使用目标变量(至少不明确使用)的数据挖掘。在有指导数据挖掘中,不同的变量发挥不同的角色。目标变量是研究对象;其余的变量用来解释或预测目标值。在无指导数据挖掘中,没有特殊的角色。目标是找到全体模式。在检测到模式之后,由人来负责解释和决定它们是否有用。 术语“无指导”实际上有一点误导。虽然没有使用任何目标变量,但是仍然必须解决业务目标。由无指导数据挖掘解决的业务目标可能听起来与其他任何目标一样直接,“发现欺诈的例子”是一个业务目标的例子,它可能需要有指导或无指导数据挖掘,这取决于训练数据是否包含明确的欺诈交易。有指导方法将寻找与已知欺诈案例类似的新记录。无指导方法是寻找异常的新记录。 业务目标的另一个例子是增加平均订单大小,这可以由无指导数据挖掘来解决。关联规则是一种无指导数据挖掘技术,可以发现哪些相关物品会经常在一起出售的模式。此信息可用来通过改进交叉销售来提高订单大小。 有时,业务目标自身可能有一点模糊,而数据挖掘的努力是一种精炼它们的方法。例如,一家公司可能会有为不同客户群开发专门服务的目标,但是没有明确了解应该如何划分客户。聚类是一种无指导数据挖掘技术,可以用来发现客户的划分。研究划分可能会深入了解组内成员的共同之处,这反过来会提出新产品可能解决的共同需要。 3.3 目标、任务和技术 作者认识的一位数据挖掘顾问说,他生活在恐惧当中,害怕客户会阅读一篇提到一些特定数据挖掘技术名称的杂志文章。当营销副总裁开始询问神经网络与支持向量机时,可能就到了重置会话的时间。数据挖掘总是开始于一个业务目标,而数据挖掘人员的首要工作就是很好地理解这一目标。这一步骤需要在设定目标的上层管理人员以及负责将这些目标纳入数据挖掘任务的分析师之间进行良好的沟通。下一步工作是根据数据挖掘任务重申业务目标,直到此时才会选择特定的数据挖掘技术。 3.3.1 数据挖掘业务目标 第2章的数据挖掘应用提供了几个业务目标的好例子: ● 选择广告的最佳位置。 ● 为分支或商店寻找最佳位置。 ● 获取更多有利可图的客户。 ● 降低暴露于违约的风险。 ● 改进客户保留。 ● 检测欺诈性索赔要求。 本书的其余部分还包含了许多数据挖掘的示例,它们用于解决现实世界中的实际问题。并非所有的业务目标本身都可直接作为数据挖掘的业务目标;有时候必须把它们转变成数据挖掘的业务目标。数据挖掘要想成功,业务目标应该明确,同时指向适于使用现有数据进行分析的特定努力。数据挖掘的业务目标通常可以表示成可测量的事物,如增量收益、响应率、订单大小或者等待时间等。 当然,实现这些目标需要的不只是数据挖掘,但是数据挖掘可以发挥重要的作用。第一步是为问题设计一个高级方法。为了获得更多有利可图的客户,你可以首先学习驱动已有客户的盈利因素,然后获取具有合适特征的新客户。降低信贷风险可能意味着预测哪些目前信誉良好的客户可能会变质,同时提前减少他们的信用额度。提高客户保留可能会聚焦于改进现有客户的体验,或者获取持续期预期会很长的新客户。高级方法提出特定的建模任务。 3.3.2 数据挖掘任务 数据挖掘任务是可以独立于任何特定业务目标进行描述的技术活动。如果一个业务目标适合于数据挖掘,那么它通常可以表示成下列任务: ● 为挖掘准备数据 ● 探索性数据分析 ● 二元响应建模(也称为二元分类) ● 离散值分类和预测 ● 数值估计 ● 发现群集和关联 ● 将模型应用于新的数据 数据挖掘项目通常会涉及若干个这样的任务。我们来看这样一个例子:在直接营销活动中决定覆盖哪些客户。探索性数据分析表明哪些变量对于描述客户响应的特征来说非常重要。这些变量可以用来发现类似客户的群集。客户的群集标识可能是二元响应模型中的一个重要的解释变量。当然,创建模型的目标是为了将其应用到表示潜在客户的新数据,对他们响应活动的倾向进行打分。 1. 为挖掘准备数据 为挖掘准备数据是从第18章到第20章的主题。需要的工作量取决于数据源的性质和特定数据挖掘技术的要求。一些数据准备工作几乎总是必需的,而且数据准备通常是数据挖掘项目中最费时的一部分。需要一些数据准备来修复源数据的问题,但是它主要还是旨在加强数据的信息内容。更好的数据意味着更好的模型。 通常,多来源的数据必须结合成一个客户签名,其中每个客户一条记录,同时有大量的字段用来获取对他们感兴趣的一切。因为源数据通常不是客户级别的,因此构建客户签名需要多次转换。事务必须以有用的方式汇总。可以捕获时间序列中的趋势作为斜率或差异。对于只能在数字上工作的数据挖掘技术,类别数据必须表示成数值。有些数据挖掘技术不能处理缺失值,因此必须以某种方式处理缺失值;同样,离群点(outlier)也需要处理。当某些结果非常罕见时,有必要使用分层抽样来平衡数据。当变量采用不同的尺度度量时,也有必要对它们进行标准化。 数据准备可能涉及以创造性的方式结合现有的变量来创建新的变量。它也可能涉及使用主成分和其他技术来缩减变量的数量。 2. 探索性数据分析 探索性数据分析不是本书的重点,但是这并非因为我们认为它不重要。事实上,作者之一(Gordon)曾经写过一本书Data Analysis Using SQL and Excel,重点介绍了这种数据挖掘任务。探索性数据分析的结果可能是一份报告或一系列的图,它们描述了感兴趣的东西。探索性数据分析也可用于在数据中添加新的度量和变量。 剖析是一种熟悉的方法,可用于许多问题,它根本不需要涉及任何复杂的数据挖掘算法。剖析常常基于人口统计变量,例如地理位置、性别、年龄等。因为广告是根据这些相同的变量来销售的,因此人口统计剖析可以直接转化为媒体策略。简单的剖析可用于设置保险费。一名17岁的男性会比一个60岁的女性支付更多的汽车保险。同样,一个简单的人寿保险合同申请表会询问年龄、性别、是否吸烟等——而不是其他更多的信息。 虽然剖析很强大,但是它存在严重的局限性。其中之一是不能区分原因和结果。只要剖析是基于常见的人口统计变量,这一限制就不明显。如果男性比女性购买更多的啤酒,你不必怀疑喝啤酒是否就是客户为男性的原因。我们可以假设从男人到啤酒之间存在链路是合理的,但反之则不然。 对于行为数据而言,因果关系的方向并不总是那么清晰。考虑一些实际的数据挖掘项目例子: ● 购买了存款证(certificate of deposit,CD)的人在他们的储蓄账户中钱很少或没有钱。 ● 使用语音信箱的客户经常拨打自己的电话号码。 不把钱存到储蓄账户中是CD持有人的一个共同行为,就像男性是啤酒消费者的一个共同特征。啤酒公司会寻找男性来推销他们的产品,那么银行是否应该找出没有存款余额的人,以便向他们出售存款证明?可能不会!据推测,CD持有人的储蓄账户没有钱,是因为他们用这笔钱购买了CD。储蓄账户中没有钱的一个更常见原因是他们没有任何钱,而没钱的人不是投资账户的好的潜在客户。类似地,语音信箱用户如此频繁地呼叫他们自己的号码只是因为在这个特定的系统中,这是一种检查语音信箱的方式。该模式对寻找潜在客户没用。 3. 二元响应建模(二元分类) 许多业务目标归结为彼此分为两类——把好坏分开,把绵羊和山羊分开,或者(存在性别和年龄歧视的风险)把男人和男孩分开。在直接营销活动中,好的会响应,而坏的不会。当信贷扩展时,好的会支付欠款,而坏的会违约。当提出索赔要求时,好的是有效的索赔,而坏的则是欺诈。有些技术,如逻辑回归,是专门针对这类是或否的模型。 取决于不同的应用,响应模型评分可以是类标签本身,也可以是属于感兴趣类的可能性的估计。信用卡公司想要向滑雪靴制造商出售其在账单信封空白处的广告空间,它可以构建一个分类模型将其所有持卡人分为两类,滑雪者或非滑雪者。更典型的是,它将对每个持卡人指定一个滑雪倾向评分。任何评分大于或等于某个阈值的持卡人都被归类为滑雪者,而得分较低的人则被认为不是一个滑雪者。 这种估计方法有一个很大的优点,就是可以根据该估计值对个人记录进行排序。为了看看这么做的重要性,想象一下这个滑雪靴公司为50万份邮件制定了预算。如果使用该分类方法确定了150万名滑雪者,那么它只需简单地把广告投放在此集合中随机选择的50万人的账单上。另一方面,如果每个持卡人有一个滑雪倾向得分,那么它可以联系50万最有可能的候选者。 4. 分类 分类(Classification)作为最常见的数据挖掘任务之一,似乎是人类必不可少的。为了理解世界并与世界交流,我们不断地进行划分、归类和分级。我们把生物按门类(phyla)、种类(specie)和种属(genera)分类;把事物按元素分类;把狗按品种分类;把人按种族分类;把牛排和枫树糖浆按照美国农业部(USDA)的等级分类。 分类涉及为新给定的对象指定预定义类集合中的某一类。分类任务由明确定义的类来描绘,同时模型集由划分好的实例组成。其任务是建立某种类型的模型,可应用于对未分类的数据进行归类。 使用本书所描述的技术已经解决的分类任务例子包括: ● 把信贷申请者分类为低、中或高风险。 ● 选择Web页面上要显示的内容。 ● 确定哪些电话号码对应传真机,哪些对应声音线路以及哪些是两者共享。 ● 识别欺诈性的保险索赔。 ● 基于自由文本(free-text)的描述指定行业代码和职务名称。 在所有这些例子中,类的数量有限,而任务就是把任何记录指定到它们中的一个或另一个。 5. 评估 分类处理离散输出:是或否;例如是否为麻疹、风疹或水痘。评估处理连续值输出。给定一些输入数据,评估生成一些未知的连续变量的值,如收入、订单的大小,或信用卡余额。 评估任务的示例包括: ● 估计家庭的收入总额。 ● 估计客户的生存周期值。 ● 估计客户违约的风险。 ● 估计某人响应余额转账请求的概率。 ● 估计需要转账的余额大小。 最后两个估计的乘积即是余额转账营销的预期价值。如果预期价值低于营销的成本,那么就不应该发起请求。 6. 发现群集、关联及相关组 无指导数据挖掘的两个例子有:决定超市购物车中什么东西会放在一起,以及发现具有类似购买习惯的客户组。倾向于一起出售的产品称为相关组(affinity group),具有类似行为的客户形成了市场划分。零售商可以使用相关组来计划商品在货架上或目录中的安排,从而使常常被一起购买的物品会同时看到。营销人员可以为特定的分组设计产品和服务。 相关组合是一种从数据中生成规则的简单方法。如果两个物品,比如猫食和猫窝,同现次数足够频繁,那么你可以想想如何在营销活动中使用此信息。它还带来了另一个问题:客户应该买而没买的东西是什么?买了许多猫窝的客户还应该买猫食—— 他们在哪可找到它? 聚类是把异构的总体数据划分成一些更均匀的小组或群集的任务。聚类与分类的区别在于聚类不依赖预定义的类。在分类中,通过在预分类的实例上训练得到模型,然后基于该模型对每条记录分配一个预定义的类。 在聚类中,没有预定义的类,也没有实例。基于记录的自相似性把它们分组在一起。它由用户决定把什么意义(如果有的话)附加到结果群集上。症状群集可以表示不同的疾病。客户属性的群集可能表示不同的市场划分。 聚类通常是某些其他形式的数据挖掘或模型的前奏。例如,聚类可能是市场划分工作的第一步:相对于试图对“客户对哪种类型的促销响应最好”获得一个通用规则,其首先把客户库划分成具有类似消费习惯的群集或人群,然后问什么样的促销最适合每个群集。第13章和第14章详细介绍了群集检测技术。 7. 将模型应用于新的数据 前面列出的许多任务通常会涉及把模型应用于新的数据。探索性数据分析并非如此,对于聚类而言它可能为真也可能不为真,但是对于二元响应模型、分类和评估,用来创建模型的数据中包含了目标变量的已知值。将模型应用于目标值已知的数据的理由之一是为了评价模型。配置模型之后,其目的是为了对新的数据打分,其中响应概率、类别或者要估计的值未知。 将模型应用于新的数据称为打分(scoring)。要打分的数据必须包含模型所需的所有输入变量,同时每行有一个唯一的标识符。打分的结果是一张新表,其中至少有两列——标识符和分数。 3.3.3 数据挖掘技术 本书的大多数章节描述了数据挖掘技术的某种独特技术。 在许多情况下,数据挖掘是通过构建模型来完成的。从某种词义来看,模型是对事物如何工作的一种解释或说明,其足以反映现实,从而可以用来对现实世界进行推理。虽然没有意识到,但是人类无时无刻不在使用模型。当你看到两个餐厅,并判断在每张桌子上有白桌布和真花的其中一家餐厅,会比另一家有胶木桌和塑料花的餐厅更贵时,你实际上是根据头脑中构建(基于过去经验)的模型进行了推理。当你走进其中一家餐厅时,你再次调用了一个心理模型。 从更为技术化的词义来看,模型是指某种东西,可使用数据对事物进行分类、预测、估计值,或者生成其他一些有用的结果。如图3-4所示,有相当多的东西可应用于数据并产生某种得分,它们都符合模型的定义。 图3-4 模型接受一个输入并产生输出 数据挖掘模型可以满足两个目的。第一个目的是产生得分,其可用来指导决策。第二个目的是为了洞察用于构建模型和目标的解释变量之间的关系。取决于不同的应用,这些目的中的一个可能会比另一个更重要。 数据挖掘技术分为两类:它们可以是有指导或无指导的,分别意味着技术本身是否需要或不需要目标变量。有指导和无指导技术不应与有指导和无指导数据挖掘混淆,因为这两类技术均可用于两类数据挖掘。 3.4 制定数据挖掘问题:从目标到任务再到技术 业务目标、数据挖掘任务和数据挖掘技术形成了一个阶梯,分别为从一般到具体和从非技术性到技术性。制定数据挖掘问题涉及从该阶梯上下降,每次一步;先从业务目标到数据挖掘任务,然后从数据挖掘任务到数据挖掘技术。通常,每个步骤都需要具有不同技能集的不同工作人员参与。设置目标及其优先次序是上层管理人员的责任。把这些目标转换成数据挖掘任务,并使用数据挖掘技术来完成它们是数据挖掘人员的责任。收集必要数据,并把它转化为合适的形式常常需要数据库管理员与信息技术组其他成员的合作。 3.4.1 选择广告的最佳位置 一家公司正试图得到新的有利可图客户。它应该去哪里做广告?Google AdWords?现实的电视烹调节目?杂志?如果是杂志,应选择哪一份?Architectural Digest?People en Español?还是Rolling Stone? 许多因素会影响决策,包括总体成本,每个效果的费用,以及每次转换的费用。通过匹配广告媒介的人口统计信息与最佳客户的人口统计信息,数据挖掘可以为决策提供输入。有利可图客户的行为数据没有作用,因为广告只是基于人口统计数据。 一种可能的方法是: (1) 使用人口统计和地理特征剖析现有的有利可图客户,诸如年龄、性别、职业、婚姻状况和社区特征等。使用这个剖析定义有利可图客户的原型。 (2) 使用用于剖析有利可图客户的相同变量,定义每个潜在广告媒介的受众。 (3) 估计每个广告渠道到有利可图客户原型的距离。这个距离是广告渠道的相似得分,正如打高尔夫一样,越小会越好。 (4) 在得分最低的场地做广告。 这是一个相似度模型(similarity model)的示例,将在第6章对其进行介绍。 3.4.2 确定向客户提供的最佳产品 下一个向客户提供的最佳优惠是什么?这个问题是在许多行业都会发生的交叉销售的一个例子。 针对这个问题有几种可能的办法,在许多因素中它们主要取决于可供选择的产品数量。如果可管理的产品数量比较少,那么一个好办法是为每款产品建立一个单独的模型,从而可以对每个客户给定每款产品的得分,如图3-5所示。客户的最佳优惠是他具有最高分数的产品(可能已经排除了客户已有的产品)。 (1) 对于每款产品,构建一个二元响应模型来估计客户对该产品的倾向。 (2) 对于已经有一个产品的客户,设置其倾向得分为0。 (3) 使用这些倾向得分,设计为每个客户指定最佳产品的决策过程,该过程将基于类似最高倾向或最高期望利润之类的度量。 步骤(1)中的自然选择包括决策树、人工神经网络和逻辑回归。 图3-5 对比每款产品的个人得分倾向以确定最佳优惠 二元响应模型并非计算倾向得分的唯一方法。另一种方法是使用输入变量对数据进行聚类,查看每个群集中哪些产品占主导地位。可以把一款给定产品在群集中的比例指定为倾向的得分。该方法可以使用K-Means聚类或另一种聚类技术。 3.4.3 发现分支或商店的最佳位置 新商店的最佳位置应该在哪里?在这个场景中,现有商店的绩效数据与服务区(每个商店服务客户的自然市场区域)的数据相连。其思想是要找到一组解释变量能够预测一家商店的良好绩效。 以下建模任务是解决该问题的一种方法: (1) 建立一个模型来估计某个商店绩效指标,该指标是基于该服务区的可用解释变量。 (2) 把该模型应用到候选位置,从而可以选择得分最高的位置。 这基本上是一种估计模型,可以使用各种技术,如神经网络、回归或MBR等。 一种替代方法是把商店分类为好或者坏,然后构建模型来预测这些组。通常,这么做的一种好办法是采取排除中间的做法:每个商店的利润分成三个级别——高、中、低。去掉位于“中间的”商店,并构建一个模型来区分高和低(第15章的一个案例研究采用这种方法来发现能够区分拉美裔区域与非拉美裔区域的商店的因素): (1) 把现有的商店分类为好或坏,同时建立一个能够区分这两个类的模型。 (2) 把该模型应用到候选位置,从而可以选择好的候选者。 可能的解释变量包括驾驶距离内的人口、驾驶距离内竞争对手的数量以及人口因素。这是一个剖析模型,因为目标是把当前绩效与当前环境相连。建模的技术是那些用于分类的技术,如逻辑回归分析、决策树以及MBR等。 3.4.4 根据未来利润划分客户 我们已经建立了一种定义利润的方法,如客户在一年中产生的总收益或净收益。现在的目标是基于客户在下一年的预期盈利能力对他们进行划分。 有许多方法可用来计算盈利能力。这种方法省略了一些更为困难的主题,如预测一个客户在多长时间内仍将是客户(并因此决定将来的折扣率),以及如何定义客户的网络效应(network effect)。 对于这种方法,把时钟往回拨一年,为每个当时活跃的客户生成一个快照。然后,度量下一年期间的总收益。以下就是该模型: (1) 为建模准备数据,把时钟往回拨一年,为每个当时活跃的客户生成一个快照。然后,度量下一年期间的总收益。这将创建一个预测模型集。 (2) 使用此模式集估计某个人在下一年将会产生多少收益。 (3) 将预期收入分为三个级别,分别是得到高、中、低的预期收益。 第(2)步需要建立一种估算模型,利用诸如神经网络、MBR或回归等技术。 对这种方法进行轻微改变,将模型集中的客户分类为在来年中的高、中或低收益产生者。这将使用一个分类模型,它可能是决策树(具有三个目标)或三个逻辑回归模型(每个分组一个模型)。 3.4.5 减少暴露于违约的风险 此业务问题的目标是当仍有时间采取措施降低暴露时,检测出违约的警告信号。一种检测方法是使用二元响应模型,其以“违约”为目标。该模型集是在给定时间点(例如,第一年)所有客户的快照,同时也是一个标志,表明他们在快照日期之后的三个月是否违约。可以用二元响应模型对新客户打分,预测其违约的概率。也许,对于具有高违约水平的客户应该降低他们的信贷额度。 可以使用各种技术构建这样一个二元响应模型,如逻辑回归、决策树或神经网络等。甚至可以使用无指导技术,例如聚类。在输入变量上建立群集,然后度量群集的能力以分离目标值。这是一个将无指导技术用于有指导模型的例子。 另一种方法是将违约的概率与违约的数量相结合。这个两阶段模型会估计一个客户在违约后的欠款数额。为此,该模型集只包含已经违约的客户,其目标是欠款数额。该模型将用于计算预期的亏损值,即违约的概率乘以估计的欠款数额。对欠款数额的估计可以使用MBR、神经网络、回归或可能使用决策树来构建。 然而,另一种方法是把它当作实时事件(time-to-event)问题,当一个客户可能会违约时对其进行估计。在这种情况下,该模型集包含所有的客户,包括他们的开始日期、结束日期以及该客户是否违约。该模型将估计客户违约的时间。当对新客户打分时,如果违约的估计时间是在不久之后,那么将采取行动来降低违约风险。这种类型的模型通常会使用生存分析来构建。 3.4.6 提高客户保留 有许多不同的方式可用来提高客户保留: ● 发现离开风险最高的客户,并鼓励他们留下来。 ● 量化改进操作的价值,从而使得客户将继续保留。 ● 确定哪些获取客户的方法会带来更好的客户。 ● 确定哪些客户无益,并让他们离开。 本节只讨论其中的第一个方式。 确定谁将留下的任务列表与任何二元响应模型的任务列表类似。建立一个模型集,其中包含留下和离开的客户,同时构建模型以发现区分他们的模式。这会提供一个模型评分,你可以将它用于保留工作。 这种类型的二元响应模型可以使用许多诸如决策树、神经网络、逻辑回归与MBR之类的技术来构建。一种估计客户剩余持续期的替代方法是使用生存分析,并把保留信息应用到不久之后最有可能离开的客户。 有时,一个模型最重要的输出不是其产生的分数,而是通过检查该模型本身所产生的知识。该模型能够解释客户是否主要是由于服务中断、价格敏感性或者其他原因而离开。然而,这需要使用一种能够解释其结果的技术。决策树和逻辑回归是最具可解释性的突出代表。 3.4.7 检测欺诈性索赔 把这一目标转换成模型任务取决于是否存在已知欺诈的例子。如果是,那么这是一个有指导数据挖掘任务: (1) 构建一个能够从合法索赔中区分欺诈性索赔的剖析模型。 (2) 利用该模型对所有进来的索赔评分。标注得分高于某个阈值的索赔,从而在批准之前对其进行额外的审查。 决策树和逻辑回归是可用于在步骤(1)中构建剖析模型的技术。 有时,虽然涉嫌欺诈,但是并不清楚哪些事务是欺诈性的。这种情况要求无指导数据挖掘: (1) 形成类似索赔的群集。大多数的索赔可能会落到少数几个大的群集中,它们代表了不同类型的合法索赔。 (2) 审查较小的群集,以了解它们如此特殊的原因。 在较小群集中的索赔也可以是完全合法的。聚类操作所能表明的仅仅是它们不同寻常。因为一些不寻常的索赔被证明是欺诈,所以所有这些都值得进一步审查。 一个目标,两个任务:赢得数据挖掘的比赛 每年,学术界和工业界的竞争者们都会在一项与年度KDD(知识发现和数据挖掘)会议同时举行的竞赛中测试他们的数据挖掘技能。某一年,非常清楚的是优胜者与失败者的区别不在于他们使用的算法或软件,而是他们如何将业务问题转化为数据挖掘任务。 业务问题是要最大化一个非营利慈善团体的捐款。数据是一个关于捐献的历史数据库。 探索数据之后发现了第一个结论:某些人捐献的次数越多,则他们每次捐献的钱就越少。最好的捐助者是那些最频繁的响应者,这样的预期非常合理。 不过,在这种情况下,人们似乎是以年为基准计划他们的慈善捐款。他们可能会一次性捐赠,或者随着时间推移进行间隔捐献。更多的检查并不总是意味着更多的钱。这表明决定捐赠与捐赠多少是分离的。这两项决定很有可能受到不同因素的影响。也许,无论是哪个收入水平的人,如果他们自身在军队服过役,那么他们都更有可能捐赠给一个老兵组织。在他们已决定作出捐献之后,收入水平可能会影响捐赠多少。 这些结论可以导致赢的方法,即分别对响应和捐献的大小进行建模。响应模型是在一个同时包含捐献者和非捐献者的训练集上构建。这是一个二元结果分类任务。 捐献大小模型是在一个仅包含捐献者的训练集上构建。这是一种评估任务。下图显示了这两个模型,以及如何结合它们的结果以产生每个潜在客户的期望响应值。 三个优胜组都是采用这种模型相结合的方法。另一方面,大多数竞争者建立了一个以捐献数额为目标的单一模型。这些模型把整个问题看作是一个评估任务,其中未响应表示为一个零美元的捐献。 期望捐献值的两阶段模型 3.5 不同技术对应的任务 你可以以创造性的方式使用本书描述的所有数据挖掘技术,将它们应用于通常最相关的应用之外的应用。每个主要的技术系列都对应一章(甚至不止一章)。各个技术章节包括了如何将这些技术应用于各种目的的示例。不过,仍然有一些技术更适合于某些任务。当选择一种技术时,询问自己这些问题: ● 有一个或多个目标吗? ● 目标数据是什么? ● 输入数据是什么? ● 易于使用有多重要? ● 可解释性有多重要? 这些问题的答案会缩小技术的选择范围。 3.5.1 有一个或多个目标 所有的有指导数据挖掘技术,包括回归、决策树和神经网络,都需要用已知的目标变量值进行训练。当数据没有包含这样的目标时,需要诸如聚类或探索性数据分析之类的无指导技术。 3.5.2 目标数据是什么 当目标是数值并且值域很宽泛时,适合采取产生连续值的技术。线性回归模型可以产生从负无穷到正无穷之间的任何值,神经网络同样如此。当任务是估计一个连续目标的值时,这些是自然的选择。回归树模型和表查询模型也可以用来估计数字值,但它们会产生数量相对较小的离散值。基于记忆的推理是数值目标的另一个选择,它可以产生一个值域比较大的值,但从未超出原始数据的范围。 当目标是一个二元响应或者类别变量时,将采用产生属于每个类的概率的技术。决策树非常适合这类问题,逻辑回归和神经网络同样如此。取决于问题的其他方面以及输入的性质,其他的技术如相似度模型、基于记忆的推理以及朴素贝叶斯模型可能也是不错的选择。 3.5.3 输入数据是什么 回归模型、神经网络和许多其他技术对输入值进行数学运算,因此不能处理类别数据或缺失值。当然可以重新编码类别数据,或者以数字字段替换表示重要分类特征的类别字段。也可以输入缺失值。然而,这些操作可能会既费时又不准确。随着类别字段的数量以及带有缺失值字段的数量不断增长,决策树、表查询模型以及朴素贝叶斯模型的吸引力也在不断上升,所有这些模型都可以轻松地处理类别字段和缺失值。当输入是数字且不包含缺失值时,回归模型和神经网络能够使用数据中的更多信息。 3.5.4 易于使用的重要性 一些技术比其他技术需要更多的数据准备。例如,神经网络需要所有的输入都是数字且在一个小的值域范围内。同时,它们对噪声也很敏感,且不能处理缺失值。其他技术,如决策树,容错性更好且所需的数据准备较少,但是可能效果会较差。通常需要在能力、准确性以及易于使用之间权衡。作为一种极端的例子,遗传算法需要数据挖掘人员做太多的工作,以至于如果有替代方法的话,则很少会使用它们。 自从本书第一版在20世纪90年代出版之后,数据挖掘软件工具已在易用性领域取得了重大进展。其中最好的工具提供了支持最佳实践的用户界面,甚至使得诸如神经网络之类的复杂技术也相对用户友好。 3.5.5 模型可解释性的重要性 对有些问题而言,尽快获得正确的答案至关重要。一个现代化的、无需封皮(no-envelope-required)的自动柜员机必须能够准确地识别手写金额以接受存款的支票。虽然了解算法如何区别美国的“7s”和欧洲的“1s”肯定会引人入胜,但是并不迫切需要这么做。在刷信用卡并传输批准代码的短暂间隔内,将根据欺诈的似然性对事务进行打分。获得正确的决策非常重要。批准一个欺诈事务会带来直接和明显的成本;拒绝合法交易会令一个有价值的客户心生厌烦。在这两个例子中,获得正确的答案显然比明确解释如何做决定更为重要。 而另一个极端是,有些决定——例如,是否授予或拒绝贷款——可能易受管理评论的影响。把申请者因为有太多的开场白,而且债务收入比太高作为贷款被拒绝的理由进行解释会比较好。“这个模型确定申请者为高风险,但是我们不知道为什么”的解释是不可接受的。 不同的技术提供了在准确性和可解释性之间的不同权衡。决策树可以说提供了最佳的解释,因为每片叶子都有一个规则形式的准确描述。虽然这意味着对于任何给定记录的得分都可以解释,但是这并不意味着一个大型的、复杂的树作为一个整体易于理解。权衡之处在于,决策树可能不是与其他技术一样使用变量的许多固有信息,那些技术会直接使用变量的值,而不是仅仅与分裂值(splitting value)相比较。 稍微注意一下数据准备,回归模型也会发现有助于得分的因素。若已经对解释变量进行了标准化,则模型系数的相对大小会表明每个变量对得分的贡献大小。在回归时,解释变量值的每次细小变化都对得分有影响。在这种意义上,回归模型比决策树更充分地利用了解释变量所提供的信息。 神经网络相当灵活,并且能够非常精确地建模相当复杂的功能,但基本上不可解释。这些技术中的每一种技术都提供了在最好得分和最好解释性之间的不同权衡。了解了这些技术的优缺点,你必须决定哪些技术最适合你的应用程序。 表3-1显示了哪些技术通常用于哪些任务。如表中所明确给出的,相当多的有指导技术可用于分类、预测和估计问题。最后的选择除了产生分数、待分析的数据特征,还取决于模型能解释的程度。 表3-1 各种技术分别对应哪些任务 任 务 最 适 合 也 考 虑 分类和预测 决策树、逻辑回归、神经网络 相似度模型、表查询模型、最近邻模型、朴素贝叶斯模型 评估 线性回归、神经网络 回归树、最近邻模型 二元响应 逻辑回归、决策树 相似度模型、表查询模型、最近邻模型、朴素贝叶斯模型 发现群集和模式 任何聚类算法 关联规则 3.6 经验教训 数据挖掘过程可能会因为多种原因导致失败。失败的形式多种多样,包括仅仅是不能回答你提出的问题,以及“发现”你已经知道了的事情。一种特别有害的失败类型是学习的东西不真实。其发生的原因多种多样:当用于挖掘的数据不具代表性时;或者当它包含不能泛化的意外模式时;或者当它以破坏信息的方式进行了汇总时;或者当它把本应保持独立的不同时期的信息混合在一起时。 有三种类型的数据挖掘。探索性数据挖掘产生见解或回答问题,而不是生成用于评分的模型。探索性数据挖掘通常涉及构造出使用数据能够证明或不能证明的假设。探索性数据挖掘非常重要;然而,它不是本书高级技术的主题。 当历史数据包含正在寻找的实例时,使用有指导数据挖掘。对于流失模型,其假设历史数据中包含了已经留下或离开的客户实例。对于客户价值模型,其假设可以使用历史数据来估计客户价值。该模型的目标就是这些变量。该模型的“解释”变量是输入。 无指导数据挖掘不使用目标变量。这就像是把数据扔进计算机,然后看它在哪着陆。为了使无指导数据挖掘有意义,需要对结果进行理解和解释。由于没有目标,计算机无法判断结果是好还是坏。 你可以单独使用这三种数据挖掘,或者组合它们来完成一个范围广泛的业务目标。数据挖掘过程以业务目标作为开始。数据挖掘过程涉及将业务目标转化为一个或多个数据挖掘任务。在明确定义这些任务之后,任务的性质、可用的数据类型、提交结果的方式,以及模型的准确性和模型可解释性之间的折衷,都会影响数据挖掘技术的选择。 无论你选择哪种技术,以及无论采取什么数据挖掘类型,有效地使用数据挖掘都需要一些统计学知识,这是下一章的主题。