审核组应具有业务领域模型的知识,已决定组织是否已适当地确定了

&信息中心组织开展业务领域知识培训
信息中心组织开展业务领域知识培训
&&&&&& 为了进一步提高员工的业务工作水平,日,中心组织开展业务领域知识培训,邀请电子信息领域专家讲解新形势下软件和信息服务业的发展动态。
&&&&&& 海比研究的曹开彬总裁以“互联网+时代,软件去哪儿了”为题,介绍在互联网+的时代背景下未来软件产业的发展趋势;拓尔思(TRS)的贺兆辉总监介绍了科技大数据的概念以及如何构建科技大数据的“生态”;最后北京科技大学的阿丽老师做了“数字革命与新创业浪潮”的报告,鼓励大家抓住难得的机遇开创自己的事业。大家纷纷表示,通过本次培训丰富了业务领域知识,开阔了视野,拓宽了工作思路,收获很大。数据分析生命周期 - 异步社区
数据分析生命周期
第2章 数据分析生命周期
不同于许多传统的商业智能项目和数据分析项目,数据科学项目本身带有很强的探索性。正是由于这种原因,我们有必要对数据科学项目进行标准但是不僵化的流程管理,以确保项目参与者能以严谨和周全的方式运行项目,同时不阻碍项目的探索性。
许多问题乍看起来很庞大复杂和令人气馁,但事实上可以被分解成一系列更易解决的小问题或者分阶段解决。拥有良好的流程可以确保分析方法的全面性和可重复使用性。此外,在流程的早期阶段应集中精力和时间去明确需要被解决的业务问题。
在数据科学项目初期急于收集和分析数据是一种常见的错误,这容易导致没有足够的时间来计划和仔细检查所需要的工作量,不能很好地理解业务需求,甚至无法正确地制定需要解决的业务问题。因此,项目参与者在项目进展到中期阶段可能会惊讶地发现自己采集的数据无法用于实现项目发起人实际要达成的目标,或者发现自己正在解决的问题并不是项目发起人真正感兴趣的。如果发生这种情况,该项目可能面临需要返回项目流程初期阶段重新开始的尴尬局面,甚至可能被取消。
通过创建和记录流程可以让项目变得更加严谨,并使得数据科学团队的项目产出的可信度变得更高。此外,一套明确的流程可以便于他人借鉴和采用,而其中的方法和分析可以在将来或者新成员加入团队时被重复利用。
2.1 数据分析生命周期概述
本章描述的数据分析生命周期是专门为大数据问题和数据科学项目而设计的。该数据分析生命周期可以分成6个阶段,而项目工作可能同时分处于其中的若干阶段。对于生命周期的大多数阶段,项目在它们之间的移动可以是正向的,也可以是反向的。也就是说,项目既可以从一个阶段进行到下一个阶段,也可能从一个阶段返回到上一个阶段。项目的正向或者反向移动伴随着新信息的出现和项目团队对项目的更多了解而发生,并且在实际中并不罕见。这种生命周期设计使得项目实践者可以进行反复迭代式的流程管理,并最终推动项目工作向前进行。
2.1.1 一个成功分析项目的关键角色
近年来,人们开始广泛关注数据科学家这种新的角色。2012年10月,哈佛商业评论报道了一篇标题为“Data Scientist: The Sexiest Job of the 21st Century”的文章,文中专家DJ·Patil和Tom Davenport介绍了数据科学家这种新的角色,以及如何找到和雇用数据科学家。此外,越来越多的每年举行的会议开始专注于数据科学领域的创新和大数据的相关主题。尽管数据科学家这一新角色备受关注,但是实际上一个高效的数据科学团队需要拥有7种关键的角色才能成功地运行分析项目。
图2.1描述了一个分析项目中的各种角色和关键利益相关者,他们在成功的分析项目中各自扮演着重要的角色。虽然这里列举了7种角色,但是项目最终需要多少人员,完全取决于项目的范围、组织结构以及参与者的具体技能。例如,在一个小型的多功能团队中,可能只需要3个人就能够履行7种角色。但是在一个大型的项目中,就可能需要20个以上人员参与到项目中。下面是7种角色的具体定义。
图2.1 一个成功分析项目的关键角色
业务用户:该角色对业务领域非常了解,并且通常会从分析结果中受益。他可以就项目的背景、成果的价值,以及项目成果如何实施向项目团队提供咨询和建议。通常情况下,由业务分析师、直线经理(line manager)或者项目领域的资深领域专家担任这种角色。
项目发起人:该角色负责项目的发起工作。他会为项目提供动力和要求,并定义核心业务问题。通常情况下,该角色会为项目提供资金,设置项目事项的优先级,然后明确项目预期结果,最后评估项目团队最终成果的价值。
项目经理:该角色负责项目进度和质量,确保项目达到预期目标。
商业智能分析师:该角色以报表的视角,基于对数据、关键绩效指标(KPI)、关键业务指标以及商业智能的深入理解来提供业务领域的专业知识和技能。他通常负责创建仪表板和报告,并了解数据更新源(data feed)和来源(source)。
数据库管理员(DBA):该角色负责提供和配置数据库环境,以支持工作团队的分析需求。他的工作职责包括提供对关键数据库或者表格的访问,并确保数据资源库已被关联相应的安全级别。
数据工程师:该角色需要拥有深厚的技术功底,以便进行数据管理和数据提取时的SQL查询优化,并负责将数据导入到第1章中提及的分析沙箱中去。分析使用的数据库由数据库管理员(DBA)负责安装和配置,而数据工程师则负责执行具体的数据提取工作以及大量的数据操作来协助分析工作。他会和数据科学家紧密合作,确保以正确的方式生成用作分析的数据。
数据科学家:该角色在分析技术、数据建模以及针对给定的业务问题选取有效的分析技术方面提供专业知识和技能。他使用项目的可用数据来设计和执行分析方案,确保整体分析目标能够实现。
虽然上述大多数的角色并不是新出现的,但是随着大数据的发展,最后两种角色(数据工程师和数据科学家)正在变得越来越流行和供不应求[2]。
2.1.2 数据分析生命周期的背景和概述
数据分析生命周期定义了从项目开始到项目结束整个分析流程的最佳实践,它脱胎于数据分析和决策科学领域中的成熟方法,并建立在广泛收集了数据科学家的反馈并且参考了其他成熟流程的基础上。以下是几种被参考的流程。
Scientific method[3],一种已经使用了几百年的关于思考和解构问题的可靠方法框架。其中最有价值的理念之一是先形成假设,然后找到方法进行测试。
CRISP-DM[4]是一种流行的数据挖掘方法,为如何设定分析问题提供了有用参考。
Tom Davenport的DELTA框架[5]:该框架提供了一种用于数据分析项目的方法,其中涉及组织技能、数据集以及领导者的参与。
Doug Hubbard的应用信息经济学(Applied Information Economics,AIE)方法[6]:AIE提供了一种衡量无形资产的方法,还在开发决策模型、校正专家预测,以及获得信息预期价值等方面提供了指导。
“MAD技能”[7]为数据分析生命周期中专注模型建立、执行和关键发现的第2到第4阶段所涉及的若干技术提供了参考。
图2.2概述了数据分析生命周期的6个阶段。项目团队在某一阶段学到的新东西常常促使他们重返生命周期中更早的阶段,并基于新发现的见解和知识进一步改进工作。因此,在图2.2中这6个阶段形成一个循环,箭头代表了项目在相邻阶段之间可能的反复迭代,而最大的环形箭头则代表了项目最终的前进方向。图中还包括了一些问题示例,以帮助确认每位团队成员是否获得足够信息,以及是否取得足够进展支持进入下一个阶段。需要注意的是,这些阶段的定义并非是对项目流程的硬性规定,而是旨在为项目能否适时向前进提供衡量标准。
下面是数据分析生命周期几个主要阶段的简单概述。
第1阶段——发现:在这个阶段,团队成员需要学习业务领域的相关知识,其中包括项目的相关历史。比如,可以了解该组织或者业务单位以前是否进行过类似项目,能否借鉴相关经验。团队还需要评估可以用于项目实施的人员、技术、时间和数据。在这个阶段,重点要把业务问题转化为分析挑战以待在后续阶段解决,并且制定初始假设用于测试和开始学习数据。
第2阶段——数据准备:第2阶段需要准备好分析沙盘,以便团队在项目过程中进行使用数据和进行数据分析。团队需要执行提取、加载和转换(ELT)或者提取、转换和加载(ETL)来将数据导入沙盘。ELT和ETL有时被缩写为ETLT。数据应在ETLT过程中被转换成可以被团队使用和分析的格式。在这个阶段,分析团队需要彻底熟悉数据,并且逐步治理数据(第2.3.4节)。
图2.2 数据分析生命周期概述
第3阶段——规划模型:在该阶段,团队需要确定在后续模型构建阶段所采用的方法、技术和工作流程。团队会探索数据以了解变量之间的关系,然后挑选关键变量和最合适的模型。
第4阶段——建立模型:在第4阶段,团队创建用于测试、培训和生产的数据集。此外,团队在这个阶段构建并运行由上阶段确定的模型。团队还需要考虑现有的工具是否能够满足模型的运行需求,还是需要一个更强大的模型和工作流的运行环境(例如,更快的硬件和并行处理)。
第5阶段——沟通结果:在第5阶段,团队需要与主要利益相关人进行合作,以第1阶段制定的标准来判断项目结果是成功还是失败。团队应该鉴别关键的发现,量化其商业价值,并以适当的方式总结发现并传达给利益相关人。
第6阶段——实施:在第6阶段,团队应该提交最终报告、简报、代码和技术文档。此外,团队可以在生产环境中实施一个试点项目来应用模型。
在团队成员运行模型并产生结果后,根据受众采取相应的方式阐述成果非常关键。此外,阐述成果时展示其清晰价值也非常关键。如果团队进行了精确的技术分析,但是没有将成果转换成可以与受众产生共鸣的表达,那么人们将看不到成果的真实价值,也将浪费许多项目中投入的时间和精力。
这一章接下来的篇幅做如下安排。2.2节到2.7节将一一详述数据分析生命周期的6个阶段,2.8节将讨论一个将数据分析生命周期应用于实际数据科学项目的案例。
2.2 第1阶段:发现
数据分析生命周期的第1个阶段(见图2.3)在于发现。在这个阶段,数据科学团队需要学习和研究问题、构建问题的语境和理解、了解项目所需的和可以获得的数据源。此外,团队还需要制定后续可使用数据来测试的初步假设。
图2.3 发现阶段
2.2.1 学习业务领域
理解问题的领域非常的重要。在很多情况下,数据科学家需要拥有深厚的能被广泛应用的计算和定量知识,例如拥有应用数学或者统计学的高级学位。
这些数据科学家熟练掌握用于各种业务和概念问题的方法、技术和手段。其他人员可能对业务领域和定量专业知识有深入理解,比如生命科学领域的博士对海洋学、生物学或者遗传学等研究领域有深入理解,而且具有一定深度的定量知识。
在该阶段,为了开发第3和第4阶段涉及的模型,团队需要确定数据科学家需要多少业务或者领域知识。团队应该尽早进行此项评估,来决定项目团队需要的资源,并确保团队拥有均衡的业务领域知识和技术技能。
2.2.2 资源
作为发现阶段的一部分,团队需要评估项目的可用资源。在这里,资源包括技术、工具、系统、数据和人。
在评估时,需考虑团队将会使用的工具和技术,以及后期阶段实施模型需要的系统类型。此外,要试着在组织机构内评估分析的复杂程度和可能存在的工具、技术和技能等方面的差距。例如,为了让正在开发的模型能在组织机构内长期使用,要考虑会用到哪些类型的现如今尚不具备的技能和角色。为了项目能够长期成功,对于模型使用者来说,还需要哪些类型的技能和角色?所需要的专业知识在当下的组织内是否已经具备,还是需要培养?这些问题的答案将会影响团队的技术选型,以及数据分析生命周期后续阶段的实现方式。
除了技能和计算资源外,盘点项目团队可用的数据种类是明智的。要考虑现有的数据是否足以支持实现项目的目标。团队将需要考虑是否必须收集更多的数据,或者从外部购买数据,还是转换现有数据。通常情况下,项目开始时只着眼可用数据。当数据少于预期时,该项目的规模和范围将根据现有数据相应地缩小。
另一种方法是考虑这类项目的长期目标,而不只局限于当前数据。团队则可以考虑哪些数据是达到长期目标所需的,哪些目标可以在现有数据的基础上达成。兼顾长期目标和短期目标使得团队可以进行更有抱负的项目,可以把一个项目作为战略举措的第一步而非独立个体对待。将项目作为长远考虑的一部分非常关键,尤其是当项目执行所在的组织机构对数据科学知之甚少,且目前为止可能还没有最佳的数据集来支持健壮的分析。
在项目团队中,需要拥有领域专家、客户、分析人才,也需要有效的项目管理。此外,还要评估项目需要多长时间,以及团队拥有的技能是否兼具广度和深度。
在盘点完工具、技术、数据和人这些因素后,需要考虑团队是否有足够的资源来成功完成这个项目,或者是否还需要额外的资源。在项目开始阶段协商资源,同时界定目的、目标和可行性,比在项目过程中规划这些事情更有用,同时也确保留有足够的时间来完成目标。项目经理和关键利益相关者在这个阶段更容易协商好所需资源,而不是等到项目进行时。
2.2.3 设定问题
恰当地设定问题是项目成功的关键。设定(framing)指的是陈述待解决问题的过程。最好的方法是记下问题陈述,然后与关键利益相关者进行沟通。每位团队成员理解的需求和问题可能都稍有不同,对可能的解决方案也有不同的看法。因此,陈述分析问题本身,以及陈述问题为何重要以及对谁重要,非常关键。从本质上讲,团队需要清楚地了解当前的形势和面临的主要挑战。
作为这项活动的一部分,识别项目的主要目标,明确哪些业务需求需要实现,以及确定需要做哪些工作才能满足这些需求,都非常重要。此外,还应该考虑项目的目标和项目成功的标准。通过这个项目需要实现哪些目标,以及哪些指标能够帮助判断项目是成功的呢?把这些指标记录下来,并分享给项目团队成员和关键利益相关者。最好的办法是将目标声明和成功的标准分享给团队,并和项目发起人确认是否符合他们的期望。
制定项目失败的标准同样重要。大部分人只会为项目制定成功的标准和对项目参与者的奖赏。但这几乎是仅考虑最理想的情况,假设所有事情都按照预先计划进行,项目团队将顺利实现预订目标。然而,无论多么周全的计划,都不可能预料到项目中所有的突发情况。失败标准可以让团队清楚什么时候应该停止尝试,或满足于已经收集到的数据结果。许多时候,即使从收集的数据中不再能够挖掘出有价值的信息,人们仍会继续执行分析。建立成功标准和失败标准可以让团队在与项目发起人保持一致的前提下少做无用功。
2.2.4 确定关键利益相关者
另一个重要步骤是确认项目关键利益相关者和他们对项目的兴趣所在。在讨论中,团队可以确定成功的标准、主要的风险和利益相关者,其中利益相关者应该包括任何会从项目中受益或者受项目显著影响的人。在与利益相关者交流时,需要了解业务领域和类似分析项目的相关历史。比如,团队可以确认每个利益相关者对项目结果的期望,及其判断项目成败的标准。
任何项目的发起都是有原因的。团队必须尽可能弄清项目亟待解决的痛点,并知晓在分析过程中哪些领域该深入、哪些领域该规避。取决于项目利益相关者和参与者的数量,团队可以考虑大致弄清每个人期望的参与项目的方式。这样做能明确项目参与者的预期,并避免可能由此导致的项目进度的拖延。比如,一方面团队可能因为觉得需要某人的批复而等待,另一方面此人则可能视自己为项目顾问而不去审批项目。
2.2.5 采访分析发起人
团队需要与利益相关者合作来明确和设定需要分析的问题。在开始阶段,项目发起人可能已经有一个预先确定的解决方案,但是这个解决方案不一定能够实现所期望的结果。在这种情况下,团队必须利用自己的知识和专长找到真正的问题和合适的解决方案。
例如,假设在一个项目的初期阶段,团队被要求创建一个推荐系统用于业务,做法是与三个人沟通并将推荐系统集成到现有的企业系统中。虽然这可能是一种有效的方法,但是检验问题的假设和建立清晰的理解非常重要。利益相关者可能会建议问题的解决方案,但是数据科学团队往往对问题有更客观的理解。因此,团队需要更多了解背景和业务,以便更清楚地界定问题,并为问题找到可行的解决方案。从本质上看,数据科学团队能够采取更客观的方法,因为利益相关者可能已经因为自己的经验而形成偏见。而且,过去正确的事情现在可能不再正确。避免出现这种问题的一种可能方法是,项目发起人把重心放到需求定义上,而其他团队成员专注于寻找实现这些需求的方法。
当与主要的利益相关者交流时,团队需要花时间和项目发起人进行深入的沟通,因为项目赞助者往往是项目的出资者,或者是提出抽象需求的人。项目发起人清楚需要解决的问题,通常也对潜在的解决方案有一定想法。在团队启动项目时,彻底理解项目发起人的想法非常关键。下面是与项目发起人交流的一些技巧。
为交流做准备,列出相关问题,并和同事一同审议。
尽量使用开放式提问,避免提诱导性问题。
深究细节,并深入提问。
避免过度提问,让对方有足够思考的时间。
在项目发起人表达自己的想法后,做澄清式提问,比如“为什么?是这样的吗?这个想法切题吗?还有什么需要补充的吗?”
耐心倾听,复述或者重新组织获得的信息,以确保理解无误。
尽量避免表达带有倾向性的团队观点,专注于倾听。
注意交流双方的肢体语言,适当地使用眼神交流,保持注意力。
尽量避免干扰。
记录获取的信息,并与项目发起人一同审议。
下面是在发现阶段与项目发起人交流时常用问题的简要列表。项目发起人反馈的信息可以帮助明确项目范围、制定项目目标和任务。
团队需要解决哪些业务问题?
项目的预期结果是什么?
有哪些数据源可用?
哪些行业问题可能影响到分析?
项目时间节点上有何考虑?
谁可能会为项目提供洞见?
谁对项目有最终决策权?
如果下列的特定维度发生了改变,问题的重点和范围将如何改变?
时间:分析1年还是10年的数据?
人物:评估人力资源变化对项目进度的影响。
风险:保守到积极。
资源:从极度匮乏到无尽(工具、技术、系统)。
数据大小和属性:包含内部和外部数据源。
2.2.6 形成初始假设
形成一系列初始假设是发现阶段的一个重要方面。这涉及团队形成能用数据检验的想法。一般情况下,最好先提出几个主要的假设进行测试,然后再想更多的。这些初始假设是团队在后续阶段进行的分析测试的原型,并为第5阶段的发现奠定基础。第3章将从统计角度详细讨论假设检验。
通过这种方式,团队可以将自己的假设与实验或测试结果进行比较,以生成更多的潜在解决方案。最终,团队将拥有更加丰富的发现,能为项目最有影响力的结论提供更多的佐证。
这个过程还涉及从利益相关者和领域专家那里收集和评估假设。这些利益相关者和领域专家对于问题本身、问题的解决方案,以及如何得到解决方案,都可能有自己的见解。他们熟悉业务领域,可以为团队形成初始假设提供想法。团队收集到的许多想法可能反映了这些人的营运假设。这些想法也可以帮助团队有意义地扩大项目范围,或者贴合利益相关者最重要的兴趣设计实验。在假设形成时,可以获取和探索一些初始数据,以便与利益相关者一起讨论。
2.2.7 明确潜在数据源
在发现阶段,团队需要确认用来解决问题的数据,并考虑用于检验假设的数据的体量、类型和时间跨度。要确保团队可以访问的数据不局限于简单的聚合数据。在大多数情况下,团队需要原始数据以避免后期分析时的偏差。要依据第1章中介绍的大数据的特征,从体量、种类和速度的变化方面评估数据的主要特征。数据状况的诊断情况会影响到数据分析生命周期第2阶段到第4阶段使用的工具和技术。此外,在此阶段进行数据探索将帮助团队确定所需要的数据量,例如,从现有系统中获取的历史数据量和数据结构。要对项目中需要的数据的范围有所认知,并与领域专家一起确认。
在发现阶段,团队需要进行5项主要的活动。
识别数据源:列出团队在本阶段测试初始假设所需要的候选数据源清单。盘点当前可用的数据集和可购买到的数据集。
捕获汇总数据源:汇总数据能提供数据的预览和高层次的理解。它使团队可以快速浏览数据,并进一步探索特定领域的数据。它也帮助团队识别感兴趣的数据。
查看原始数据:从最初的数据源获取初步数据。理解数据属性之间的相互依赖关系,并熟悉数据的内容、质量和局限性。
评估数据结构和所需工具:数据的类型和结构决定了团队需要使用哪些工具来分析数据。此评估可以帮助团队思考适合项目的技术,以及如何开始获得这些工具。
界定问题所需的数据基础设施:除了所需的工具外,数据还会影响需要的基础设施,比如磁盘存储和网络带宽。
在许多传统的“关卡”式的项目流程中,团队只能在特定条件满足时才能继续前进。与此不同的是,数据分析生命周期中融入了更多的模糊性,更真实地反映出现实中数据科学项目的运行方式。在数据分析生命周期的每个阶段,建议通过特定检查点来衡量团队是否可以进入下一个阶段。
在本发现阶段,当团队有足够的信息来起草一个分析计划,并将其交给同行评审时,就可以进入生命周期的下一阶段了。由同行来评审分析计划不是必须的,但是创建计划本身可以测试团队对业务问题的理解情况和解决问题的方法。创建分析计划也需要对业务领域、要解决的问题和要使用的数据源的范围有一个清晰的了解。在项目的早期阶段制定成功的标准可以明确问题的定义,并帮助团队选择后续阶段使用的分析方法。
2.3 第2阶段:数据准备
数据分析生命周期的第2阶段是数据准备,其中包括在建模和分析前对数据的探索、预处理和治理。在这一阶段,团队需要建立一个强大的用于探索数据的非生产环境。通常,这个环境是一个分析沙箱。为了将数据导入沙箱,团队需要执行对数据的提取、转换操作和加载,即ETLT。一旦数据被导入沙箱,团队需要了解和熟悉这些数据。详细了解数据是项目成功的关键。团队还必须决定如何治理和转换数据,使其格式便于后续分析。团队可以利用数据可视化来帮助团队成员了解数据,包括数据趋势、异常值、数据变量之间的关系。本节将讨论数据准备阶段的每个步骤。
数据准备往往是分析生命周期中最费力的。事实上常见的是,在数据科学项目中至少50%的团队时间都花在这个重要阶段。如果不能获取到足够高质量的数据,团队可能无法进行生命周期过程中的后续阶段。
图2.4显示了数据分析生命周期的第2阶段。通常,数据准备阶段是最繁复的,同时又是最容易被团队轻视的。这是因为大多数团队和领导者都急于开始分析数据、检验假设、获得第1阶段提出的一些问题的答案。许多人会在没有花足够时间准备数据的情况下就急于跳到第3和第4阶段去快速开发模型和算法。结果,当他们发现手中的数据无法兼容想要执行的模型时,他们又不得不回到第2阶段。
图2.4 数据准备阶段
2.3.1 准备分析沙箱
数据准备阶段的第1个子阶段,团队需要获取一个分析沙箱(通常也称为工作区),以便在不干扰到生产数据库的前提下探索数据。假设团队需要处理公司的财务数据,那么团队应该在分析沙箱中用财务数据的拷贝进行分析,而不是直接用公司的生产数据库进行分析。直接操作生产数据库是受到严格控制的,只有在制作财务报表时才能进行。
当准备分析沙箱时,最好能收集所有数据放入沙箱,因为团队成员在进行大数据分析时需要访问大量的不同种类的数据。取决于计划进行的分析,这些数据可能包括汇总的聚合数据、结构化数据、原始数据,以及从通话记录和网页日志中获取的非结构化文本数据。
这种全盘收集数据的方式和许多IT组织机构提倡的方式非常不同。许多IT部门只会为特定目的提供特定数据段的访问。通常,IT部门的心态是提供最少的数据,让团队实现目标即可,而数据科学团队则想着拿到所有数据。对于数据科学团队来说,数据越多越好,因为数据科学项目通常混合了目的驱动型分析和测试各种想法的实验性方法。在这种情况下,如果访问每个数据集和每个数据属性都需要单独申请,这对于数据科学团队是非常有挑战的。由于在数据访问和数据使用上有不同的考量,数据科学团队与IT部门的合作至关重要,一定要共同明确需要完成什么样的目标,并且目标一致。
在与IT团队沟通时,数据科学团队需要证明一个独立于组织机构内由IT部门管理的传统数据仓库的分析沙箱的必要性。为了在数据科学团队和IT部门之间取得成功且良好的平衡,需要在多个团队和数据所有者之间建立积极的工作关系。而这样做产生的回报是巨大的。分析沙箱使得组织机构可以执行目标更远大的数据科学项目,超越传统数据分析和商业智能的范畴,进行更为强大和高级的的预测分析。
沙箱可能会很大。它可能包含原始数据、聚合数据和其他在组织机构不常使用的数据类型。沙箱的大小可以根据项目的不同有所变化。一个有用的准则是沙盘至少应该是原始数据集的5~10倍大小,部分原因在于项目中数据的多份拷贝可能被分别用来创建特定的数据表或存储以进行特定的数据分析。
尽管分析沙箱是一个相对较新的概念,已经有公司着手于这一领域,寻找沙箱和工作区的解决方案,以便数据科学团队能够采用一种可被IT部门所接受的方式来访问和处理数据集。
2.3.2 执行ETLT
当团队开始转换数据时,需要确保分析沙盘拥有足够的带宽和可靠的网络来连接到底层数据源,以进行不间断的数据读写。在ETL过程中,用户从数据存储中提取数据,执行数据转换,并将数据加载回数据存储。然而,分析沙箱方法略有不同,它主张先提取、加载,然后转换,即ELT。在这种情况下,数据是以原始格式提取的,然后加载到数据存储中,在那里分析员可以选择将数据转换到一个新的状态或者保持它的原始状态。使用这种方法是因为保留原始数据并将它在发生任何转变之前保存到沙箱具有重要的价值。
例如,考虑信用卡欺诈检测的分析案例。很多时候,数据中的异常值代表着象征信用卡欺诈行为的高风险交易。使用ETL的话,这些异常值在被加载到数据存储之前,可能就已经被无意中过滤掉或者被转换和清洗。在这种情况下,用于评估欺诈活动的数据已经被无意中丢弃,团队也就无从进行相应的分析。
遵循ELT方法可以在数据存储中为团队提供干净的数据用于分析,也可以让团队访问数据的原始形式,以查找数据中隐藏的细微差别。分析沙箱的大小之所以能够快速增长,部分原因正在于采用了ELT方法。团队既可能想要干净的数据和聚合的数据,也可能需要保存一份原始格式的数据以进行比较,或者是在清洗数据前找到数据中隐藏的模式。这整个过程可以被概括为ETLT,意味着团队可以选择在一个分析案例中执行ETL,而在另一个案例中执行ELT。
根据数据源的大小和数量,团队可能需要考虑如何将数据并行地导入到沙箱。导入大量数据有时候被称为Big ETL。数据导入可以使用Hadoop或MapReduce等技术并行化。我们将在第10章中详细介绍这些技术,它们可以用于执行并行数据摄取,以及在很短的一段时间内并行产生大量的文件或数据集。Hadoop可以用于数据加载以及后续阶段的数据分析。
在将数据导入到分析沙箱之前,确定要在数据上执行的转换。这涉及评估数据质量和构建合适的数据集,以便在后续阶段的分析。此外,考虑团队将可以访问哪些数据,以及需要从数据中生成哪些新的数据属性来支持分析,也很重要。
作为ETLT的一部分,建议盘点数据,并将当前可用的数据与团队需要的数据进行比较。这种差距分析能帮助理解团队目前可以利用的数据集,以及团队需要在何时何地开始收集或访问当前不可用的新数据集。这个子过程涉及从可用源提取数据,以及确定用于原始数据、在线事务处理(OLTP)数据库、联机分析处理(OLAP)数据集或其他数据更新源的数据连接。
应用程序编程接口(API)是一种越来越流行的访问数据源的方式[8]。现在许多网站和社交网络应用程序都提供可以访问数据的API,用于为项目提供支持,或者补充团队正在处理的数据集。例如,通过Twitter API可以下载数以百万计的Twitter信息,用于对一个产品、一个公司或一个想法的情感分析项目。大部分的Twitter数据都是公开的,可以在项目中和其他数据集一起被使用。
2.3.3 研究数据
数据科学项目的关键之一是熟悉数据。通过花时间了解数据集的细微差别,可以帮助理解什么是有价值的和预期的结果,以及什么是意外的发现。此外,重要的是要对团队可以访问的数据源进行归类,并识别团队可以利用但是暂时无法访问的其他数据源。这里做的一些事情可能会与在发现阶段对数据集的初始调查有重叠。研究数据是为了达成几个目标。
明确数据科学团队在项目时可以访问的数据。
识别组织机构内那些对团队来说可能有用但是暂时还无法访问的数据集。这样做可以促使项目人员开始与数据拥有者建立联系,并寻找合适的方法分享数据。此外,这样做可以推动收集有利于组织机构或者一个特定的长期项目的新数据。
识别存在于组织机构外的,可以通过开放的API、数据共享,或者购买的方式获取的新数据,用于扩充现有数据集。
表2.1展示了一种数据清单的组织方法。
表2.1 数据清单示例
可用和可访问的数据
数据可用,但无法访问
要收集的数据
从第三方数据源获取的数据
产品发货数据
产品财务数据
产品呼叫中心数据
实时产品反馈调查数据
来自社交媒体的产品情感数据
2.3.4 数据治理
数据治理(data conditioning)是指清洗数据、标准化数据集和执行数据转换的过程。作为数据分析生命周期中的一个关键步骤,数据治理可以涉及许多关联数据集,合并数据集,或者其他使数据集日后能被分析的复杂操作。数据治理通常被视为数据分析的预处理步骤,因为在开发模型来处理或分析数据之前,数据治理还需要对数据集进行多种操作。这意味着数据治理是由IT部门、数据所有者、DBA或者数据工程师执行的。然而,让数据科学家参加数据治理也很重要,因为数据治理阶段所做的许多决策会影响到后续的分析,包括确定特定数据集的哪些部分将被用于后续阶段的分析。团队在这一阶段开始需要决定保留哪些数据,转换或丢弃哪些数据,而这些决策应由大多数团队成员共同参与。如果让一个人来拍板,可能会导致团队日后返回这一阶段来获取已经被丢弃的数据。
在前面信用卡欺诈检测的案例中,团队在选择要保留的数据和要丢弃的数据时需要深思熟虑。如果团队在数据处理的过程中过早地丢弃了许多数据,可能会导致重新回溯前面的步骤。通常,数据科学团队宁愿保存更多而不是更少的数据用于分析。与数据治理相关的其他问题和考量如下所示。
数据源是什么?目标字段是什么(例如,数据表的列)?
数据有多干净?
文件和内容一致吗?如果数据包含的值与正常值有偏差,确定数据值缺失和数据值不一致到哪种程度?
评估数据类型的一致性。例如,如果团队期望某些数据是数值型的,要确认它是数值型的或者是字母数字字符串和文本的混合。
审查数据列的内容或其他输入,并检查以确保它们有意义。例如,如果项目涉及分析收入水平,则要预览数据确定收入值都是正值,如果是0或者负值需确认是否可接受。
寻找任何系统性错误的证据。比如由于传感器或其他数据源的不为人察觉的损坏,导致数据失效、不正确,或者缺失数据值。此外,要审查数据以衡量数据的定义在所有的尺度标准下是否是相同的。在某些情况下,数据列被重新调整,或者是数据列被停止填充,而且这些变化并没有被注释或没有通知给其他人。
2.3.5 调查和可视化
在团队收集和获得用于后续分析的部分数据集后,一种有用的步骤是利用数据可视化工具来获得数据的概述。观察数据的抽象模式可以帮助人们快速理解数据特征。一个例子是使用数据可视化来检查数据质量,比如数据是否包含很多非预期值或者其他脏数据的迹象(脏数据将在第3章进一步讨论)。另一个例子是数据倾斜(skewness),比如,大部分数据集中在某个数值或者连续统(continuum)的一端。
Shneiderman[9]因其可视化数据分析的理念(即全盘观察,放大及过滤,然后按需获取细节)而众所周知。这是一个务实的可视化数据分析方法。它允许用户找到感兴趣的领域,然后通过放大和过滤来找到与数据的特定区域相关的更详细信息,最后找到特定区域背后详细的数据。这种方法提供了数据的一个高层视图,可以在相对较短的时间内获悉给定数据集的大量信息。
当该方法与数据可视化工具或统计软件包一起使用时,推荐下述指导意见和考量。
审查数据以确保针对一个数据字段的计算在列内或者在表间保持一致。例如,客户寿命的值在数据收集的中期有改变吗?或者当处理财务信息时,利率计算是否在年底由单利变为复利?
所有数据的数据分布是否都保持一致?如果没有,应该采取怎样的措施来解决这个问题?
评估数据的粒度、取值范围和数据聚合水平。
数据是否代表目标群体呢?对于营销数据,如果项目关注的是育儿年龄的目标客户,数据是否代表这些群体?还是也包含老年人和青少年?
对于与时间相关的变量,是以每日、每周还是每月来测量呢?这些测量间隔是否足够?是否都在以秒计算时间?或者有些地方以毫秒为单位?确定分析所需的数据粒度,并评估当前数据的时间戳级别能够满足需要。
数据是标准化/规范化的吗?数据尺度一致吗?如果不是,数据是如何不一致或不规则的?
对于地理空间数据集,数据中的州或国家的缩写一致吗?人的姓名是规范化的吗?是英制单位还是公制单位?
当团队评估项目中所获得的数据时,这些典型的考量应该是思考过程的一部分。在后面阶段构建和运行模型时,对数据的深入了解非常关键。
2.3.6 数据准备阶段的常用工具
这个阶段有下面几种常用的工具。
Hadoop[10]可以执行大规模并行数据摄取和自定义分析,可用于Web流量解析、GPS定位分析、基因组分析,以及来自多个源的大规模非结构化数据的整合。
Alpine Miner[11]提供了一个图形用户界面(GUI)来创建分析工作流程,包括数据操作和一系列分析事件,例如在Postgress SQL和其他大数据源上的分段数据挖掘技术(例如,首先选择前100名顾客,然后运行描述性统计和聚类)。
Openrefine(以前称为Google Refine)[12]是一个免费、开源、强大的杂乱数据处理工具。这是一个流行的带GUI的工具,用于执行数据转换,而且是目前可用的最强大的免费工具之一。
Data Wrangel[13]和OpenRefine相似,是一个用于数据清洗和转换的交互式工具。Data Wrangler是斯坦福大学开发的,可以对一个给定的数据集执行许多转换。此外,数据转换的输出可以使用JAVA或Python处理。这个特性的优点是,可以通过Data Wrangler的GUI界面来操控数据的一个子集,然后相同的操作可以以JAVA或Python代码的方式用来在本地分析沙箱中对更大的完整数据集进行离线分析。
在第2阶段,数据科学团队需要来自IT部门、DBA或EDW管理员的帮助,以获取需要使用的数据源。
2.4 第3阶段:模型规划
在第3阶段,如图2.5所示,数据科学团队需要确定要应用到数据上的候选模型,以便根据项目的目标进行数据聚类、数据分类,或者发现数据间的关系。团队在第1阶段时通过熟悉数据和理解业务问题或领域而形成的关于数据的初始假设,会在本阶段得以应用。这些假设有助于团队设定要在第4阶段执行的分析,以及选择正确的方法来实现分析目标。
图2.5 模型规划阶段
以下是这个阶段可以考虑的几项活动。
评估数据集的结构。数据集的结构是决定下一阶段使用的工具和分析技术的一个重要因素。比如分析文本数据和分析交易数据需要使用不同的工具和方法。
确保分析技术能够使得团队达成业务目标,验证或否定工作假设。
确定使用单个模型还是一系列技术作为分析工作流的一部分。一些示例模型包括关联规则(第5章)和逻辑回归(第6章)。其他工具,比如Alpine Miner,让用户可以建立一系列分析步骤,可以作为前端用户界面(UI)在PostgreSQL中操控大数据源。
除了上面列出的考量之外,研究和了解其他数据分析师大概如何解决一些特定问题也是非常有用的。根据给定的数据种类和资源,评估是否有相似的现成的可用方法,还是需要创建新的方法。通过学习别人在不同的垂直行业和领域解决类似问题的方法,团队经常可以获得许多灵感。表2.2总结了若干垂直行业,和之前用于相关业务领域的分类模型和技术。通过这些工作可以让团队了解到别人如何解决类似的问题,为团队在模型规划阶段提供一系列的候选模型。
表2.2 垂直行业中模型规划的研究
使用的分析技术/方法
多元线性回归、主动相关决策理论(ARD)、决策树
逻辑回归、ARD、决策树
神经网络、决策树、分层模糊神经网络系统、规则进化、逻辑回归
2.4.1 数据探索和变量选择
虽然有些数据探索发生在数据准备阶段,但是这些活动主要集中在数据卫生(data hygiene)和评估数据本身的质量。在第3阶段,数据探索的目标是理解变量之间的关系,以便决定变量的选择和方法,并了解问题领域。同数据分析生命周期的早期阶段一样,花费时间并集中注意力在数据探索这一准备性工作非常重要,可以让随后的模型选择和执行更加容易和有效。使用工具进行数据可视化是数据探索的常用手段,有助于团队在较高的层次上预览数据和评估变量之间的关系。
在许多情况下,利益相关者和领域专家知道数据科学团队应该考虑和分析什么样的数据。他们的某些猜测甚至可能导致了项目的起源。通常情况下,利益相关者对问题和业务非常了解,尽管他们可能不了解数据的细微之处,或者用于验证或否定一个假设所需要的模型。在其他时候,利益相关者可能是正确的,但是是基于错误的原因(例如,他们可能知道一种现存的关联关系,但是却为这种关联关系推断出了一个错误的原因)。同时,数据科学家必须用一种客观的思维方式来考虑问题,并准备质疑所有假设。
随着团队开始质疑到来的假设并检验项目发起人和利益相关者的一些初始想法,他们需要考虑输入和需要的数据,然后必须检查这些输入数据是否与项目计划预测或分析的结果存在关联性。某些方法和模型类型比其他方法能够更好地处理相关变量。依据试图解决的问题,团队可能需要通过考虑替换方法,减少数据输入的数量,或转换输入来寻找应对给定业务问题的最佳方法。这些技术将在第3章和第6章进一步探讨。
这种方法的关键是捕捉最本质的预测因子(predictor)和变量,而不是考虑人们认为可能影响到结果的每一个变量。以这种方式着手处理问题需要迭代和测试来识别最本质的用于分析的变量。团队应该计划测试在模型中的一系列变量,然后专注于最重要和最具影响力的变量。
如果团队计划运行回归分析,需要确定模型的候选预测因子和结果变量。需要计划创建能决定结果的变量,而且该变量能表现出与结果而不是其他输入变量具有强关联。对于能干扰这些模型的有效性的问题,比如序列相关性、多重共线性,以及其他典型数据建模的挑战,要保持警惕。有时,通过重塑一个给定问题就能避免这些问题。另外,有时候需要做的就是确定相关性(“黑盒预测”),而在其他情况下,项目的目标是更好地理解因果关系。 在后一种情况下,团队希望模型有解释力,而且需要在不同的情况下使用不同的数据集来预测模型或对模型进行压力测试。
2.4.2 模型的选择
在模型选择的子阶段,团队的主要目标是基于项目的最终目标来选择一种分析技术,或者一系列候选技术。在本书中,模型是一种泛指。在这种情况下,一个模型指的是对现实的一种抽象。人们观察到事件发生在真实场景中,或者带有实时数据,然后试图通过一组规则和条件来构建模仿这种行为的模型。就机器学习和数据挖掘而言,这些规则和条件一般分为若干类技术,比如分类、关联规则和聚类。有了这些潜在的模型类别,团队可以过滤出几个可行的模型,以尝试解决一个给定问题。第3章和第4章中将介绍更多为常见业务问题匹配模型的细节。
在处理大数据时需要额外考虑的是确定团队是否将使用最合适的技术处理结构化数据、非结构化数据或混合数据。例如,团队可以利用MapReduce分析非结构化数据,这将在第10章重点介绍。最后,团队应该注意鉴别和记录自己所做的用来选择构建初始模型的建模假设。
通常,团队使用统计软件包(例如,R、SAS或Matlab)来创建初始模型。虽然这些工具为数据挖掘和机器学习算法而设计,但是在将模型应用到非常大的数据集时(这在大数据中很常见),这些工具可能会有局限性。在这种情况下,当团队进行到生命周期第6阶段提及的试点阶段,可能会考虑重新设计这些算法,以在数据库中运行。
一旦决定了要尝试的模型类型,而且已经具备了足够的知识来细化分析计划,团队就可以进入到模型建立阶段。在进入这个阶段之前,需要建立关于分析模型的通用方法论、对要使用的变量和技术有深刻的理解,以及有关于分析流程的描述或图表。
2.4.3 模型设计阶段的常用工具
许多工具可以在这个阶段使用。以下是几种常见的工具。
R[14]有一套完整的建模能力,提供了一个良好的环境来构建具有高质量代码的解释模型。此外,它还能通过ODBC连接与数据库交互,并通过开源扩展包对大数据进行统计测试和分析。这两个特点使得R非常适合对大数据执行统计检验和分析。在本书写作时,R包含近5000个用于数据分析和图形展示的扩展包。R的新包发布很频繁,而很多公司提供关于R的增值服务(比如,培训、指导和最佳实践),并对它进行打包,使得它更加容易使用和更加健壮。类似的现象在1980年代末和1990年代初曾发生在Linux身上,当时很多公司对Linux进行打包,以使Linux更加容易被公司使用和部署。R和文件提取配合使用可以实现最佳性能的离线分析,而R和ODBC连接配合使用可以实现动态查询和更快地开发。
SQL Analysis services[15]可以执行数据库内分析实现常见数据挖掘功能,包括聚合和基本预测模型。
SAS/ACCESS[16]通过多种数据连接(比如,OBDC、JDBC和OLE DB)提供SAS和分析沙箱之间的集成。SAS本身通常是用于文件提取,但是有了SAS/ACCESS,用户可以连接到关系型数据库(如Oracle或Teradata)和数据仓库(如Greenplum或Aster)、文件和企业应用(如SAP和)。
2.5 第4阶段:模型建立
在第4阶段,数据科学团队需要创建用于训练、测试和生产环境的数据集。这些数据集中有一部分“训练数据”被数据科学家用于训练分析模型,另一部分“留存数据”或“测试数据”用于测试分析模型(具体细节将在第3章详细讨论)。在这个过程中,需要确保用于模型和分析的训练和测试数据集足够健壮。可以简单地认为,训练数据集用于运行模型的初始实验,然后测试数据集用于验证模型方法。
在建模阶段,如图2.6所示,一个分析模型是基于训练数据开发的,并用测试数据进行评估。模型规划和模型构建这两个阶段可能稍微重叠,并且在实践中可能在这两个阶段间来回反复,直到确定最终模型。
虽然开发模型所需要的建模技术和逻辑可能非常复杂,但是与准备数据和定义方法相比,该阶段花费的时间可能会较短。一般来说,更多的时间会花费在准备、学习数据(第1阶段和第2阶段)和演示结果(第5阶段)上。虽然看起来更加复杂,相比而言第3阶段和第4阶段一般较为短暂。
图2.6 建模阶段
在这个阶段,数据科学团队需要运行在第3阶段定义的模型。
在此阶段,用户运行分析软件包(如R或SAS)中的模型来测试文件提取和小数据集,以此评估模型在小规模数据上的有效性和结果。例如,确定模型是否适用于大部分数据并具有健壮的预测能力。这时可以通过改进模型来优化结果,比如适当修改变量输入或减少关联变量。在第3阶段,团队可能对关联变量或有问题的数据属性已经有所认知,并将在模型实际运行后对其予以证实或否定。当深入到构建模型和转换数据的细节时,常常需要做很多与建模的数据和方法相关的小决策。项目完成后这些细节很容易被忘记。因此,在这个阶段记录模型的结果和逻辑至关重要。此外,在建模过程中所做的任何有关数据或背景的假设也必须被悉心地记录。
为了创建用于特定场景的的健壮模型,需要深思熟虑,以确保开发的模型最终能够满足第1阶段提出的目标。需要考虑的问题包括下面这些。
模型是否在测试数据上有效且准确?
在领域专家看来,模型的输出和行为是否有意义?也就是说,模型给出的答案是否说得通?
模型的参数值在业务背景下是否有意义?
模型是否足够精确?
模型是否避免了不可容忍的错误?例如,取决于场景,误报可能比漏报更严重,或者反过来(误报和漏报将在第3章和第7章进一步讲解)。
是否需要更多输入数据?是否有输入需要进行转换或删减?
所选择的模型是否满足运行要求?
是否需要用模型的另一种形式来解决业务问题?如果是,回到模型计划阶段,修改建模方法。
一旦数据科学团队可以判断出模型已经足够健壮,或者团队已经失败,就可以进入数据分析生命周期的下一个阶段。
2.5.1 模型构建阶段中的常用工具
在这个阶段有许多工具可以使用,主要侧重于统计分析或者数据挖掘软件。在这个阶段中常用的工具包括(但不限制于)下面几种。
商业工具。
SAS Enterprise Miner[17]允许用户在大量企业数据上运行预测性和描述性模型。它可以与其他大型数据存储相通,能与许多工具配合使用,适合企业级计算和分析。
SPSS Modeler[18](IBM公司出品,现在称为IBM SPSS Modeler)通过GUI探索和分析数据。
Matlab[19]提供了一种高级语言来运行各种数据分析、算法和数据探索。
Alpine Miner[11]为用户提供了GUI前端来开发分析工作流程,并在后端与大数据工具和平台进行交互。
STATISTICA[20]和Mathematica[21]是一种颇受欢迎且评价甚高的数据挖掘和分析工具。
免费或开源工具。
R和PL/R[14],R 在模型计划阶段描述过,PL/R是一种过程型语言,用于R和PostgreSQL的交互,即在数据库中执行R的命令。与在内存中运行R相比,这种技术提供了更高的性能和更好的可扩展性。
Octava[22],用于计算机建模的一款免费软件,能实现部分Matlab的功能。因为免费,它被用于许多大学的机器学习教学中。
WEKA[23]是一个带有分析工作台的免费数据挖掘软件包。WEKA中创建的函数可以在Java中运行。
Python是一种编程语言,提供了机器学习和分析工具包,比如scikit-learn、numpy、scipy、pandas和相关的数据可视化(基于matplotlib)。
SQL数据库内应用,比如MADlib[24],提供了一种内存桌面分析工具的替代方案。MADlib提供了一套开源的机器学习算法库,可运行在PostgreSQL或GreenPlum数据库系统内。
2.6 第5阶段:沟通结果
在运行模型之后,团队需要将建模的成果和之前建立的成功与失败的衡量标准进行比较。在第5阶段中,如图2.7所示,团队需要考虑以何种最佳方式向团队成员和利益相关者阐述项目的发现和成果,包括警告、假设和结果的不足。因为项目演示常常面向整个组织机构,因此需要采用听众可以理解的方式来恰当地表达成果和定位发现。
图2.7 沟通结果阶段
在第5阶段,团队需要确定项目是否成功达到既定目标。许多时候,人们不愿意承认失败,但在这个情况下失败不应该被视为真正的失败,而是数据不能充分地验证或否定一个给定的假设。这听起来有些违背常理。但是,团队在确定数据是否会证明或否定在第1阶段中提到的假设时必须足够严谨。有时团队只做了一些肤浅的分析,其不足以验证或否定一个假设。有时团队做了深入的分析却试图展示并不存在的结果。在分析数据时要在这两个极端之间找到平衡,在展示实际结果时要实事求是。
当进行评估时,要确定结果是否有统计上的显著意义和有效性。如果是的话,要明确交流时需要突出哪些提供了显著发现的结果。如果结果是无效的,要考虑如何对模型进行改进和迭代以生成有效结果。在这一步中,要评估结果并确定哪些数据出人意料,哪些与第1阶段提出的假设一致。将实际结果与早期制定的想法相比较,可以产生额外的想法和见解。如果团队没有花时间来制定最初的假设,则将错过这些额外的想法和见解。
此时,团队应该已经确定哪种或哪些模型可以最佳地解决分析挑战。此外,团队应该已经对项目的某些发现有所认知。在这个阶段,一种最佳实践是记录所有的发现,然后选择三个最重要的发现分享给利益相关者。此外,团队需要反映这些发现的含义和评估其业务价值。取决于模型产生的结果,团队可能需要花费时间量化结果带来的业务影响,以帮助准备项目演示和展示发现的价值。Doug Hubbard的著作[6]为如何评估企业无形资产和量化看似不可预测的事物价值提供了见解。
既然团队已经运行了模型,完成了周密的发现阶段,并对数据集有了充分了解,就应该反思项目,思考项目遇到的阻碍和可以改进的方面。要为后续工作或现有过程的改进提供建议,还要考虑每一位团队成员和利益相关者需要怎样履行其个人职责。例如,项目发起人必须为项目提供支持,利益相关者必须理解模型如何影响流程(例如,如果团队创建了一个模型用于预测客户流失,市场营销团队必须理解如何在规划措施时使用这个模型)。生产工程师需要实施已经完成的工作。此外,在这个阶段要强调工作的商业价值,并开始在生产环境中实施项目成果。
这一阶段完成时,团队将会记录从分析中得出的重要发现和主要见解。这个阶段交付的成果对于利益相关者和赞助商来说将是最看得见的,所以要小心清楚地阐述结果、方法论和发现的商业价值。第12章将详细讲解数据可视化的工具和引用文献。
2.7 第6阶段:实施
在最后这个阶段,团队更广泛地言传项目的好处,并建立一个试点项目以可控的方式来部署项目成果,然后再将成果应用到整个企业或者用户生态系统。在第4阶段,团队在分析沙箱中对模型进行评估。如图2.8所示,第6阶段是大多数分析团队第一次在生产环境中部署新的分析方法或模型。团队在大规模部署模型之前,可以先在小范围内实验性地部署, 从而学习部署经验和有效地管控风险。这种方法使得团队可以在小规模的生产环境中研究模型的性能和相关约束,并在完全部署前作相应的调整。在试点项目中,团队可能需要考虑在数据库中运行算法,而不是在R等内存工具中,因为算法跑在数据库中明显比在内存中更快和更高效,尤其是当数据集很大时。
图2.8 模型实施阶段
在设定试点项目中涉及的工作时,还要考虑针对一组离散的产品或单条业务线在生产环境中运行模型的情况,这将在实际场景中测试模型。这让团队从部署中学习,并在整个企业发布模型前进行任何必要的调整。请注意,这个阶段会引入一系列新的团队成员,通常是负责生产环境的工程师,他们有不同于核心项目团队的新问题和关注点。该技术团队需要确保模型能在生产环境中平滑运行,并能集成到相关的业务流程。
实施阶段的任务包括建立一个对模型精度持续检测的机制,并且在精度下降时,设法重新调试模型。如有可能,设计当模型运行出界(out-of-bounds)时产生警报。出界情况包括输入超出模型训练的范围,这可能会导致模型的输出不准确或无效。如果该情况经常发生,则需要新的数据来重新训练模型。
分析项目常常会对人们认识肤浅或者认为不可能探索的业务、问题或想法产生新的见解。要满足大多数利益相关者的需求,可以创建四种主要可交付成果。其创建方法将在第12章中详细讨论。
图2.9描述了一个分析项目中每一个主要利益相关者的关键输出,以及他们预期的项目结论。
业务用户通常试图确定项目的结果对业务产生的效益和影响。
项目发起人通常会问问题,关于项目的业务影响力、风险和投资回报率(ROI),以及项目在组织机构内外的推广方式。
项目经理需要确定该项目是否按时完成,是否控制在预算内,以及目标是否达成。
商业智能分析师需要知道他管理的报告和仪表板是否会被影响以及是否需要改变。
数据工程师和数据库管理员(DBA)通常需要共享他们在分析项目中的代码,并创建技术文档来介绍实现细节。
数据科学家需要共享代码并向他的同伴、经理和其他利益相关者解释模型。
虽然这7个角色在一个项目中有各自的兴趣点,这些兴趣点通常存在重叠,其中大部分可以通过4种主要的可交付成果来满足。
图2.9 一个成功的分析项目的主要产出
针对项目发起人的演示文档:这包括给高管级别利益相关者的信息,其中有些关键信息可以帮助他们进行决策。文档要注重简洁和图案,以方便演示人员进行讲解,同时便于听众掌握。
针对分析师的演示文档:描述业务流程的变化和报告的变化。数据科学家可能想要细节,并且习惯于技术图表(比如,观测者操作特征(ROC)曲线、密度图和在第3章和第7章所示的直方图)。
针对技术人员的代码。
实施代码的技术规范。
一般而言,当受众越是高管,越需要表达简洁。大多数高管项目发起人每周或每天都会参加很多报告会,因此确保陈述迅速切入要点,并阐述结果对发起人组织机构的价值。例如,如果团队正在与一家银行合作分析信用卡欺诈的案例,则要重点强调欺诈频率,在过去一个月或一年发生欺诈的次数,以及对银行造成的成本或营收的影响(或者关注对立面,即如果解决了欺诈问题,银行可以增加多少收入)。这样做比深层次的方法论更能体现业务影响力。演示则需要包括与分析方法和数据源相关的支持信息,但通常只作为辅助细节,或确保受众对分析数据使用的方法有信心。
当向拥有量化背景的受众做介绍时,应该花更多的时间来介绍方法论和发现。这时,团队可以更加详细地描述成果、方法论,以及分析试验。这些受众对技术更感兴趣,尤其是当团队开发了一种新的方法来处理或分析数据,而且该方法可以在将来重用或者用到类似的问题上。此外,尽量使用图例或数据可视化。虽然可能需要花费更多的时间来制作图例,但是人们更容易记住用图片来演示的内容,而不是一长串信息 [25]。数据可视化和演示将在第12章继续讨论。
2.8 案例研究:全球创新网络和分析(GINA)
EMC全球创新网络和分析(GINA)团队由一群在EMC全球各地卓越中心(COE)工作的高级技术专家构成。这个团队的宗旨是吸引全球卓越中心(COE)员工来从事创新、研究和大学的合作伙伴关系。在2012年,新任职的团队总监想加强这些活动,并建立一个机制来追踪和分析相关信息。此外,GINA团队想要创建更加健壮的机制来记录他们与EMC内部、学术界或者其他组织机构的思想领袖的非正式对话,用来在日后发掘洞见。
GINA团队想要提供一种在全球范围内分享想法,以及在地理上相互远离的GINA成员之间分享知识的手段。它们计划创建一个包含结构化和非结构化数据的存储库,用于实现下面三个主要目标。
存储正式和非正式的数据。
追踪全球技术专家的研究。
挖掘数据模式和洞察力,以提高团队的运营和战略。
GINA的案例研究展示了一个团队如何应用数据分析生命周期在EMC内分析创新数据。创新通常难以评估,该团队想要使用高级分析方法在公司内部识别关键创新者。
2.8.1 第1阶段:发现
在GINA项目的发现阶段,团队开始确定数据源。虽然GINA由一群掌握许多不同技能的技术专家组成,他们对想要探索的领域有一些相关数据和想法,但缺少一个正式的团队来执行这些分析。在咨询了包括巴布森学院(Babson College)的知名分析专家Tom Davenport、麻省理工学院集体智慧专家兼协同创新网络(CoIN,Collaborative Innovation Networks)创始人Peter Gloor等专家后,团队决定在EMC内部寻找志愿者来众包工作。
团队中的各种角色如下所示。
业务人员、项目发起人、项目经理:来自于首席技术官办公室的副总裁。
商业智能分析师:来自于IT部门的代表。
数据工程师和数据库管理员(DBA):来自于IT部门的代表。
数据科学家:EMC杰出工程师,他还开发了GINA案例研究中的社交图谱。
项目发起人想要利用社交媒体和博客[26]来加速全球创新和研究数据的收集,并激励世界范围内的数据科学家“志愿者”团队。鉴于项目发起人缺少一个正式的团队,他需要想办法找到既有能力有愿意花时间来解决问题的人。数据科学家们往往热衷于数据,项目发起人依靠这些人才的激情富有创新地完成了工作挑战。
该项目的数据主要分为两大类。第一类是近5年EMC内部创新竞赛,被称为创新线路图(以前称为创新展示),提交的创新想法。创新线路图是一个正式的、有机的创新过程,来自世界各地的员工提交创新想法,然后被审查和评判。最好的想法被选择出来进行孵化。因此,创新线路图的数据是结构化数据和非结构化数据的混合,结构化数据包括创新想法的数量、提交日期和提交者,非结构化数据包括该创新想法的文本描述。
第二类数据包括来自世界各地创新和研究活动的备忘录和笔记。这些数据也包括结构化数据和非结构化数据。结构化数据包括日期、名称、地理位置等属性。非结构化数据包括“谁、何事、何时、何地”等信息,用来表示公司内知识的增长和转移。这种类型的信息通常存在于业务部门,对研究团队几乎不可见。
GINA团队创建的10大初始假设(IH)如下所示。
IH1:在不同地理区域的创新活动反映了企业的战略方向。
IH2:当全球知识转移作为想法交付过程的一部分发生时,交付想法所花的时间将减少。
IH3:参与全球知识转移的创新者能更快地交付想法。
IH4:对提交的创新想法可以进行分析和评估,确定资助的可能性。
IH5:某一特定主题的知识发现和增长可以跨区域进行评估和对比。
IH6:知识转移活动可以确定在不同地区的特定研究的边界人员。
IH7:企业战略与地理区域相对应。
IH8:频繁的知识扩张和转移活动缩短了从想法到企业产出所花费的时间。
IH9:谱系图可以揭示什么时候知识扩展和转移(还)没有导致企业产出。
IH10:新兴研究课题可以按照特定的思想者、创新者、边界人员和资产进行分类。
GINA的初始假设可以被划分为2大类。
描述性分析,对当前正在发生的能进一步激发创造力、合作和资产生成的事件进行描述。
预测性分析,建议管理层未来投资的方向和领域。
2.8.2 第2阶段:数据准备
团队与IT部门合作建立了一个新的分析沙箱用于存储和实验数据。在数据探索期间,数据科学家和数据工程师开始注意到某些数据需要治理和规范化。此外,团队意识到某些缺失的数据集对于检验一些分析假设非常关键。
当团队探索数据时,他们很快就意识到,如果数据的质量不够好或者没有足够的高质量数据,就无法执行生命周期过程中的后续步骤。因此,确定项目需要什么级别的数据质量和清洁度非常重要。在GINA案例中,团队发现许多研究者和大学人员的名字被拼错,或者在数据存储中的首尾有空格。这些看似数据中的小问题都必须在本阶段解决,以便在随后阶段更好地分析和聚合数据。
2.8.3 第3阶段:模型规划
在GINA项目中,对于大部分数据集来说,似乎可以使用社交网络分析技术来研究EMC的创新者网络。在其他情况下,由于数据的缺乏很难恰当地检验假设。针对IH9,团队决定发起一个纵向研究来跟踪知识产权产出随时间的变化。这种数据收集将使团队可以检验以下两种初始假设。
IH8:频繁的知识扩张和转移活动缩短了从想法到企业产出所花费的时间。
IH9:谱系图可以揭示什么时候知识扩展和转移(还)没有导致企业产出。
对于提出的纵向研究,团队需要建立研究的目标标准。具体来说,团队需要确定遍历了整个过程的成功创意的最终目标。针对研究范围要考虑以下注意事项。
确定实现目标所要经历的里程碑。
追踪人们如何从每个里程碑出发进化创意。
追踪失败的创意和达成了目标的创意,对比两种创意的不同历程。
取决于数据如何收集和封装,使用不同的方法比较时间和结果。这可能会像t检验(t-test)那样简单,也可能会涉及不同的分类算法。
2.8.4 第4阶段:模型建立
在第4阶段,GINA团队采用了若干种分析方法。其中包括数据科学家使用自然语言处理(NLP)技术来处理创新线路图的创新想法的文本描述。此外,数据科学家使用R和RStudio进行社交网络分析,然后使用R的ggplot2包创建社交图谱和创新网络的可视化。这项工作的示例如图2.10和图2.11所示。
图2.10 创新想法提交者和入围者的社交图谱[27]可视化
图2.11 最具影响力创新者的社交图谱可视化
图2.10中的社交图谱描述了GINA中创新想法提交者之间的关系。每一种颜色代表来自不同国家的创新者。带红圈的点是中心(hub),代表一个具有较高的连通性和较高的“中间型(betweenness)”分数的创新者。图2.11中的聚类包含地理的多样性,这在证明地理边界人员的假设时至关重要。该图中有一个研究科学家比图中其他人的分数高很多。数据科学家识别出了这个人,并在分析沙箱中对其运行了分析,生成了关于他的如下信息,证明他在公司中很有影响力。
2011年,他参加了ACM SIGMOD会议,这是一个大规模数据管理和数据库方面的顶级会议。
他拜访了EMC Documentum内容管理团队位于法国的业务部门(现在IIG部门的一部分)。
在一个虚拟午餐会议上,他向3名俄罗斯员工、1名开罗员工、1名爱尔兰员工、1名印度员工、3名美国员工和1名以色列员工介绍了参加SIGMOD会议的感想。
2012年,他参加了在加州召开的SDM 2012会议。
在参加SDM会议后,他拜访了EMC、Pivotal和VMware的创新者和研究员。
随后,他在一个内部技术会议上,向数十名公司创新和研究人员介绍了他的二位研究人员。
这一发现表明,至少部分初级假设是正确的,即数据可以识别跨越不同地域和业务部门的创新者。团队使用了Tableau软件进行数据可视化和探索,使用了Pivotal GreenPlum数据库作为主数据仓库和分析引擎。
2.8.5 第5阶段:沟通结果
在第5阶段中,团队发现了若干种方法来过滤分析结果和识别最有影响和最相关的发现。这个项目在识别边界人员和隐藏的创新者方面是成功的。因此,首席技术官办公室发起了纵向研究,开始收集更长时间跨度上的创新数据。GINA项目促进公司内外跨区域的创新和研究相关的知识分享。GINA也使得EMC创造了更多的知识产权和生成了更多的研究主题,并促进了与大学的科研合作关系,以便在数据科学和大数据方面进行联合学术研究。此外,由于有杰出工程师和数据科学家作为志愿者参与了该项目,因此该项目在预算有限的情况下顺利完成。
该项目中的一个重要发现是,在爱尔兰的科克市有相当多的创新者。EMC在每年举办一次创新竞赛,让员工提出可以为公司带来新价值的创新理念。回顾2011年的相关数据,15%的入围者和15%的获奖者都来自爱尔兰。考虑到爱尔兰科克市的COE相对较小的规模,这些数字就异常惊人了。进一步研究后发现,科克COE员工接受了来自外部顾问关于创新的集中培训,这被证明是非常有效的。因此科克的COE想出了更多、更好的创新点子,为EMC的创新做出了巨大的贡献。传统的或者“八卦式”的口口相传的方法将很难识别这个创新者群体。团队运用社交网络分析发现了在EMC中谁做了巨大的贡献。这些研究结果通过演示和会议在内部分享,并通过社交媒体和博客进行了推广。
2.8.6 第6阶段:实施
在一个装载了创新者笔记、备忘录和演示报告的沙箱中运行分析产生了对EMC创新文化的深刻见解。来自该项目的关键发现包括以下这些。
首席技术官办公室和GINA在将来需要更多的包括营销计划在内的数据,以解读EMC全球的创新和研究活动。
有些数据非常敏感,团队需要考虑数据的安全性和私密性,比如谁可以运行模型并看到结果。
除了运行模型,还需要改进基本的商业智能,比如仪表盘、报告和全球研究活动的查询。
在部署模型后,需要有一套机制来持续不断地评估模型。评估模型的好处也是这一阶段的主要目标之一,并需要定义一个过程来按需重新训练模型。
除了上述的行为和发现,团队还演示了如何在项目中通过分析发现新的见解,而这些见解在传统上是很难进行评估和量化的。这个项目促使首席技术官办公室对大学研究项目进行资助,也发现了隐藏的、高价值的创新者。此外,首席技术官办公室还开发了工具来帮助创新想法提交者使用新的融合了主题建模技术的推荐系统来寻找类似的想法,改进自己的想法和完善新知识产权的提案。
表2.3列出了GINA案例中的分析计划。尽管这个项目只展示了3个发现,但实际上有许多。例如,这个项目最大的综合性结果也许就是它以具体的方式展示了分析可以从关于像创新这样难于评估的主题的项目中发现新的见解。
表2.3 EMC GINA项目的分析计划
分析计划的构成
GINA案例研究
发现业务问题
跟踪全球知识增长,确保有效的知识转移,并迅速将其转化为企业的资产。这三者都应该可以加速创新
跨区域知识转移的增加可以提升想法交付的速度
五年的创新想法提交和历史;来自于全球创新和研究活动的六个月的文本笔记
模型规划分析技术
社交网络分析、社交图谱、聚类和回归分析
结果和主要结论
1.发现了隐藏的、高价值的创新者,和分享他们的知识的方法 2.促使了对大学研究项目进行资助 3.创建工具来帮助创新想法提交者使用想法推荐系统来改进想法
每个公司都想要加强创新,但却很难评估创新或确定增加创新的方法。本项目从这样一个角度来探索这个问题,即通过评价非正式社交网络来识别创新子网络内的边界人员和有影响力的人。本质上,这个项目应用了高级的分析方法,基于客观事实梳理出了一个看似模糊的问题的答案。
这个项目的另一个结论是,需要为商业智能报表建立一个单独的数据存储来搜索创新和研究举措。除了支持决策,这也能提供一种知晓全球范围内不同区域的团队成员之间的讨论和研究的机制。这个项目同时强调了通过数据和分析可以获得的价值。因此,应该启动正式的营销计划,以说服人们在全球社区提交或者告知他们的创新/研究活动。知识共享是关键,否则GINA也将无法执行分析并识别隐藏在公司内部的创新者。
本章描述了数据分析生命周期,这是一种用于管理和执行分析项目的方法。这种方法可以被描述为6个阶段。
2.数据准备
3.模型规划
4.模型建立
5.沟通结果
通过这些步骤,数据科学团队可以识别问题并对深度分析所需要的数据集进行严谨的探索。本章虽然花了很多篇幅来讲解分析方法,但实际项目的主要时间会花在第1和第2阶段,即发现和数据准备。此外,本章还讨论了数据科学团队中需要的7个角色。组织机构必须认识到数据科学强调团队协作,而要想成功地运行大数据项目和其他涉及数据分析的复杂项目,则需要各种技能的平衡。
2.10 练习
1.团队会在哪个阶段花费最多的时间?为什么?团队会在哪个阶段花费最少的时间?
2.在全面推广新的分析方法之前做一个试点项目的好处是什么?
3.以下阶段可能会使用什么样的工具,分别针对哪些类型的应用场景?
  a.阶段2:数据准备
  b.阶段4:模型建立
[1] T. H. Davenport and D. J. Patil, “Data Scientist: The Sexiest Job of the 21st Century,” HarvardBusiness Review, October 2012.
[2] J. Manyika, M. Chiu, B. Brown, J. Bughin, R. Dobbs, C. Roxburgh, and A. H. Byers, “Big Data: The NextFrontier for Innovation, Competition, and Productivity,” McKinsey Global Institute, 2011.
[3]“Scientific Method” [Online]. Available:
[4]“CRISP-DM” [Online]. Available:
[5] T. H. Davenport, J. G. Harris, and R. Morison, Analytics at Work: Smarter Decisions, Better Results,2010, Harvard Business Review Press.
[6] D. W. Hubbard, How to Measure Anything: Finding the Value of Intangibles in Business, 2010,Hoboken, NJ: John Wiley & Sons.
[7] J. Cohen, B. Dolan, M. Dunlap, J. M. Hellerstein and C. Welton, MAD Skills: New Analysis Practicesfor Big Data, Watertown, MA 2009.
[8]“List of APIs” [Online]. Available:
[9] B. Shneiderman [Online]. Available:
[10]“Hadoop” [Online]. Available:
[11]“Alpine Miner” [Online]. Available:
[12]“OpenRefine” [Online]. Available:
[13]“Data Wrangler” [Online]. Available:
[14]“CRAN” [Online]. Available:
[15]“SQL” [Online]. Available:
[16]“SAS/ACCESS” [Online]. Available:
[17]“SAS Enterprise Miner” [Online]. Available:
[18]“SPSS Modeler” [Online]. Available:
[19]“Matlab” [Online]. Available:
[20]“Statistica” [Online]. Available:
[21]“Mathematica” [Online]. Available:
[22]“Octave” [Online]. Available:
[23]“WEKA” [Online]. Available:
[24]“MADlib” [Online]. Available:
[25] K. L. Higbee, Your Memory—How It Works and How to Improve It, New York: Marlowe &Company, 1996.
[26] S. Todd, “Data Science and Big Data Curriculum” [Online]. Available:
[27] T. H Davenport and D. J. Patil, “Data Scientist: The Sexiest Job of the 21st Century,” HarvardBusiness Review, October 2012.
使用R进行基本数据分析
高级分析理论与方法:聚类
高级分析理论与方法:关联规则
高级分析理论与方法:回归
高级分析理论与方法:分类
高级分析理论与方法:时间序列分析
高级分析理论与方法:文本分析
高级分析技术与工具:MapReduce和Hadoop
高级分析技术与工具:数据库内分析
欢迎来到异步社区!

我要回帖

更多关于 业务领域划分 的文章

 

随机推荐