1.大多数组织都难以解锁数据科学以优化其操作流程,让数据科学家、分析师和业务团队采用一致的语言:不同的团队和数据科学流程常常是形成摩擦的根源。
2.健康的数据科学组织框架是一系列方法论、技术和资源的组合,它们将帮助你的组织 (从业务理解、数据生成和获取、建模,到模型部署和管理) 变得更为数据驱动。
3.为了成功地将愿景和业务目标转化为切实有效的结果,建立清晰的绩效指标非常重要。
4.组织需要更有机地考虑其端到端的数据流和体系结构,它们将是数据科学解决方案的支撑。
5.基于 Azure 机器学习服务,团队构建了一个人员部署推荐方案,为新项目推荐最优的员工组合和具有对口经验和专业知识的人员。
在过去的几年里,来自无数不同来源的数据变得更加可用和可消费,许多组织都在开始寻找使用最新数据分析技术的方法,以满足他们的业务需求和寻求新的机会。除了数据变得更加可用和可访问外,还出现了大量工具和应用程序,使团队有能力构建复杂的数据分析解决方案。鉴于以上种种,组织越来越多地围绕数据科学的职能组建团队。
数据科学是一个结合数学、编程和可视化技术的领域,它将科学方法应用于特定的业务领域或问题,如预测未来的客户行为、规划空中交通路线或识别语音模式等。但是,成为一个数据驱动的组织究竟意味着什么呢?
通过本文,业务和技术领导者将学到一些评估他们的组织是否是数据驱动的方法,以及对其数据科学成熟度进行基准测试的方法。此外,通过现实世界中已经应用过的用例,他们将学习如何使用健康的数据科学组织框架在组织内培养健康的数据科学思维。
作为一名数据科学家,我基于自身的经验创建了这个框架,我正在从事端到端数据科学和机器学习解决方案的工作,与许多不同类型行业的外部客户合作,包括能源、石油和天然气、零售、航空航天、医疗保健和职业劳务。该框架提供了一个构建数据科学项目的开发生命周期。这个生命周期概述了项目在运行时从开始到结束要遵循的步骤。
成为一个数据驱动的组织意味着要嵌入数据科学团队,以充分参与业务,并调整公司的运营骨架 (技术、流程、基础设施和文化)。健康的数据科学组织框架是一系列方法论、技术和资源的组合,如果正确使用,这些方法论、技术和资源将帮助你的组织 (从业务理解、数据生成和获取、建模,到模型部署和管理) 变得更为数据驱动。
这个框架包括六个关键原则:①了解业务和制定决策的过程;②建立绩效指标;③构建端到端解决方案;④构建你的数据科学技巧工具箱;⑤统一组织的数据科学愿景;⑥让人参与其中。如图 1 所示。
图 1 健康的数据科学组织框架
考虑到该领域的快速发展,组织通常需要指导如何应用最新的数据科学技术来满足其业务需求或寻求新的机会。
对于大多数组织来说,缺乏数据并不是问题。事实恰恰相反:通常在制定决策时手里掌握太多的信息。有这么多的数据需要分类,组织需要充分定义一个策略在以下各方面对业务加以阐述:
1.数据科学如何帮助企业做业务转变,更好地管理成本,并驱动更卓越的运营;2.组织对想要完成的事情是否有一个明确定义并予以清晰表达的目标和愿景;3.组织如何获得C级管理人员和涉众的支持,以实现数据驱动的愿景,并推动它贯穿至业务的各个部分。
简而言之,公司需要对其业务决策过程有一个清晰的理解,以及一个更好的数据科学策略来支持该过程。有了正确的数据科学思维,以往大量不同的信息就变成了一个简单清晰的决策点。
组织必须从正确的问题着手。该问题应该是可度量的、清晰的、简洁的,并与他们的核心业务有直接的关联。在此阶段,设计问题就特定业务问题或机会的潜在解决方案加以限定(或取消限定)非常重要。例如,从一个明确定义的问题开始:一家零售公司的成本正在不断上升,无法再向客户提供有竞争力的价格。要解决这一业务问题,可能会引出许多的问题,其中之一可能是:公司能否在不影响质量的情况下减少运营?
要回答这类问题,组织需要解决两项主要任务:①定义业务目标:数据科学团队需要与业务专家和其他涉众合作,以理解和识别业务问题;②提出正确的问题:公司需要提出明确的问题,定义数据科学团队可以瞄向的业务目标。
去年,Azure机器学习团队为一家职业劳务公司开发了一个基于推荐的员工分配解决方案。通过使用Azure机器学习服务,我们开发并部署了一个人员部署推荐解决方案,该方案为新项目推荐最优的员工组合和具有对口经验和专业知识的个人员工。我们这个解决方案的最终业务目标是提高客户的利润。
当时,项目人员配置是由项目经理手工完成的,他基于的是员工的可用性和其个人过去业绩的先验知识。这个过程非常耗时,而且结果往往并不理想。利用历史数据和先进的机器学习技术可以更有效地完成这个过程。
为了将这个业务问题转化为切实可行的解决方案和结果,我们帮助客户提出了正确的问题,例如:我们如何预测新项目的员工构成?例如,一名高级项目经理、一名首席数据科学家和两名会计助理。我们如何计算新项目的员工适合度评分?我们将员工适合度得分定义为度量项目员工适合度的指标。
我们这个机器学习解决方案的目标是根据员工的可用性、地理位置、项目类型经验、行业经验和以前项目产生的小时贡献边际,为新项目推荐最合适的员工。Azure和无数的基于云计算的工具,可以帮助该组织制定成功的劳动力分析解决方案,为具体的行动计划和人力资源投资提供基础:
使用Azure云,更容易获得无与伦比的生产力,它具有端到端的开发工具和监控、管理和保护云资源的管理工具。此外,Azure机器学习服务提供了一个基于云的环境,组织可以使用它来准备数据、培训、测试、部署、管理和跟踪机器学习模型。Azure机器学习服务还包括自动生成模型和调优的功能,以帮助你轻松、高效并准确地创建模型。这些解决方案可以解决组织人员分配中需要克服的偏差或低效,从而得到更好的业务结果。组织可以通过使用劳动力分析来优化人力资本的使用,从而获得竞争优势。在接下来的几个章节,我们将一起了解如何为客户构建这个解决方案。
为了成功地将这个愿景和业务目标转化为切实有效的结果,下一步是建立清晰的绩效指标。在第二步中,组织需要从分析层面关注定义数据解决方案管道的以下两个关键方面:1.解决该业务问题并得出准确结论的最佳分析方法是什么;2.如何将这一愿景转化为能够改善业务的切实有效的结果?,如图2所示。
图 2 数据解决方案流水线
这一步分为三个子步骤:
1.决定度量什么
我们以预测性维护为例,这是一种用于预测在役机器何时会发生故障的技术,它使你能够对其维护提前很好地进行规划。事实证明,这是一个非常广泛的领域,有着各种各样的最终目标,比如预测故障的根本原因、哪些部件需要更换以及故障发生后何时提供维护建议等等。
许多公司正在尝试进行预测性维护,以及从各种传感器和系统中获得大量数据。但是,通常情况下,客户并没有足够的故障历史数据,这使得预测维护非常困难。毕竟,为了预测未来的故障事件,需要基于此类故障历史数据对模型进行培训。因此,尽管为任何分析项目制定愿景、目的和范围很重要,但是从收集合适的数据开始才至关重要。
用于预测维护的相关数据源包括但不限于:故障历史、维护/维修历史、机器操作条件、设备元数据。让我们假定有一个车轮故障用例:训练数据应该包含与车轮操作相关的特征。如果问题是预测牵引系统的故障,训练数据必须包含牵引系统的所有不同部件。第一个案例针对特定的组件,而第二个案例针对较大子系统的故障。一般的建议是设计关于特定组件的预测系统,而不是更大的子系统。
给定上述数据源,预测维护领域中观察到的两种主要数据类型是:
(1)暂态数据(如操作遥感、机器条件、工作指令类型、记录时具有时间戳的优先级代码)。故障、维护/修理和使用历史记录也将有与每个事件相关联的时间戳);
(2)静态数据(机器特征和操作员特征一般是静态的,因为它们描述了机器或操作员属性的技术规格。如果这些特征随着时间的推移而改变,那么它们也应该具有与之相关联的时间戳)。预测器和目标变量应该根据使用的算法进行预处理/转换为数值、分类和其他数据类型。
2.决定如何度量它
考虑组织如何度量数据也同样重要,尤其是在数据收集和摄入阶段之前。这一子步骤的关键问题包括:时间是什么时候;度量单位是什么;应该包括哪些因素?
此步骤的中心目标是确定分析需要预测的关键业务变量。我们将这些变量称为模型目标,并使用与它们关联的度量来确定项目的成功。针对这类目标,举两个例子为销售预测或预测是欺诈性订单的可能性。
3.定义成功指标
在标识关键业务变量之后,将业务问题转换为数据科学问题并定义界定项目是否成功的度量标准非常重要。组织通常使用数据科学或机器学习来回答以下五类问题:多少(回归);哪一类(分类);哪一组(聚类);这奇怪吗(异常检测);应该采取哪种选择(推荐)。
确定公司正在询问哪些问题,以及如何回答这些问题,这样才能实现业务目标,并能够对结果进行度量。在这一点上,通过提出和精炼相关的、具体的、明确的尖锐问题来重新审视项目目标是很重要的。例如假设,一家公司想要实现客户流失率的预测,需要精确到在一个为期三个月的项目结束时达到“x”%。有了这些数据,公司就可以为客户提出减少客户流失率的促销活动了。
以我们的职业劳务公司为例,我们决定解决的第一个业务问题是,如何预测一个新项目的员工组合,例如一名高级会计师加两名会计助理。对于这种客户参与,我们使用了近五年个人级别的每日历史项目数据。我们删除了任何有负边际贡献或负总小时数的数据。我们首先从测试数据集中随机抽取了 1000 个项目,以加速参数调优。在确定了最优参数组合后,我们对测试数据集中的所有项目进行了相同的数据准备。
以下是我们为这次业务构建的数据类型和解决方案流(如图 3 所示):
图 3 数据类型和解决方案流
我们使用了一种聚类方法:K最近邻(KNN)算法。KNN是一种简单、易于实现的监督机器学习算法。KNN算法假设相似的事物具有很近的距离,从而在训练数据中找到最相似的数据点,并根据它们的分类进行有根据的猜测。该方法虽然易于理解和实现,但在推荐系统、语义搜索和异常检测等领域也得到了广泛的应用。
在第一步中,我们使用KNN来预测一个新项目的人员组成,也就是说,使用历史项目数据预测每种人员分类/职务的数量。我们根据不同的项目属性,如项目类型、总账款、行业、客户、收入范围等,找出与新项目相似的历史项目。我们根据业务规则和标准为每个项目属性分配了不同的权重。我们还删除了任何有负边际贡献(利润)的数据。对于每一种人员分类,通过计算同类历史项目对应人员分类的人员数量加权和来预测人员数量。最后将这些权值规格化,使所有权值的和为1。在计算加权和之前,我们剔除了10%的过高异常值和10%的过低异常值。
我们要解决的第二个业务问题是,如何计算新项目的员工适合度得分,我们决定使用基于内容的自定义过滤方法:具体来说,我们实现了一个基于内容的算法来预测员工的经验与项目需求的匹配度。在基于内容的过滤系统中,通常是根据用户对条目的历史评分来计算得出用户配置文件。这些用户配置文件描述了用户的品味和偏好。
为了预测员工对新项目的适合度,我们使用历史数据为每个员工创建了两个员工档案向量:一个向量基于的是一个小时数,它代表员工在不同类型项目上的经验和专业技能;另一个向量基于的是每小时贡献利润率(CMH),它代表员工在不同类型项目上的盈利能力。新项目的员工适合度评分是通过计算这两个员工轮廓向量和代表项目重要属性的二进制向量之间的内积来计算的。
我们使用Azure机器学习服务实现了这个机器学习步骤。使用主流的Python SDK和用于 Azure机器学习的Data Prep SDK,我们在Azure机器学习服务工作区中构建我们的机器学习模型,并对其展开训练。这个工作区是为该服务准备的顶级资源,它为我们提供了一个集中的地方来处理这个项目创建的所有工件。
为了创建一个工作区,我们确定了以下配置项:
当我们创建一个工作区时,会自动添加以下 Azure 资源:Azure Container Registry(Azure容器注册表);Azure Storage(Azure存储);Azure Application Insights(Azure应用洞见);Azure Key Vault(Azure密钥保管库)。
该工作区保存了一个计算目标列表,你可以使用这些目标训练你的模型。它还保存执行训练的历史记录,包括日志、指标、输出和脚本快照。我们使用这些信息来确定哪个训练运行生成了最佳模型。
之后,我们将模型注册到工作区中,并使用注册的模型和计分脚本创建用于部署的镜像(为此用例构建端到端体系结构的相关更多细节将在下面讨论)。工作区的概念和机器学习流程如图 4 所示:
图 4 工作区概念和机器学习流程
在大数据时代,越来越多的数据的积累和分析,往往是非结构化的,它们来自于应用程序、Web环境和各种各样的设备。在第三步中,组织需要更有机地考虑支持其数据科学解决方案的端到端数据流和体系结构,并问问自己以下问题:
1.他们真的需要这么多数据吗;2.他们如何确保它的完整性和可靠性;3.他们应该如何存储、处理和操作这些数据,以回答我的问题;4.最重要的是,他们如何将这个数据科学解决方案整合到他们自己的业务和运营中,以便随着时间的推移仍能成功地使用它?
数据体系结构是规划数据收集的过程,包括对所要收集的信息的定义、用于结构化数据的标准和规范以及用于提取、存储和处理此类数据的工具。
对于任何执行数据分析的项目来说,这个阶段都是基础,因为它保证了将来所要研究的信息的可用性和完整性。为此,你需要了解数据将如何存储、处理和使用,以及项目需要哪些分析。就这一点,可以说项目的技术愿景和战略愿景是交叉的,因为这个计划任务的目的是保持数据提取和操作过程与业务目标保持一致。
在定义了业务目标(原则1)并将它们转换为有形的度量标准(原则2)之后,现在必须要做的是选择正确的工具,以使组织能够实际构建端到端数据科学解决方案。考虑诸如数据量、数据种类以及数据生成和处理的速度等因素,对公司确定应该使用哪种类型的技术会很有帮助。在现有的各类工具中,必须考虑:
数据收集工具:如Azure Stream Analytics和Azure Data Factory,这些工具将帮助我们提取和组织原始数据。
存储工具:如Azure Cosmos DB和Azure Storage:这些工具以结构化或非结构化的形式存储数据,并且可以以集成的方式聚集来自于多个平台的信息
数据处理和分析工具:如Azure Time Series Insights和Azure Machine Learning Service Data Prep,有了这些,我们可以使用存储和处理的数据创建可视化逻辑,使分析、研究和报告成为可能,从而支持运营和战略决策的制定。
模型操作化工具:如Azure Machine Learning service和Machine Learning Server:在公司拥有一组运行良好的模型之后,它们可以将这些模型操作化,供其他应用程序使用。根据业务需求来看,可以实时预测,也可以批量预测。为部署模型,公司需要使用一个开放的 API接口来暴露它们。各类的应用程式可以通过该接口轻松使用这个模型,例如:在线网站、电子表格、仪表板、企业重要流程线(LoB)应用程序、后端应用程序。
这些工具可以根据业务的需要予以调整,但在理想情况下应该提供它们之间集成的可能性,从而使数据可以在任意选择的平台上使用,而不需要手工处理。这种端到端架构(如图5)还将为公司提供一些关键的优势和价值,例如:
图 5 端到端体系结构的示例
1.加速部署和降低风险:集成的端到端体系结构可以极大地降低组装端到端解决方案所需的成本和精力,从而进一步减少部署用例的时间
2.模块化:使公司能够从端到端体系结构的任何部分开始切入,并确保已经集成了关键组件,且可以良好地配合
3.灵活性:可以在任何地方运行,包括多云或混合云环境
4.端到端分析和机器学习:支持从边缘到云的端到端分析,能够将机器学习模型回推到边缘进行实时决策
5.端到端数据安全性和依从性:预集成了跨基础设施的安全性和可管理性,包括访问、授权和身份验证
6.支持开源创新:基于开源项目和确保开放标准的充满活力的社区创新模型
之于我们职业劳务公司,我们的解决方案架构由以下组件组成(如图 6):
图 6 由微软 Azure ML 团队开发的端到端架构
数据科学家使用Azure机器学习和HDInsight集群来训练模型。Azure HDInsight是一种面向企业的管理、全频谱、开源的分析服务。HDInsight是一种云服务,它使海量数据的处理变得简单、快速和划算。模型被装箱并放入Azure容器注册表。Azure容器注册表使你可以为所有类型的容器部署构建、存储和管理镜像。对于这个特定的客户参与,我们使用Azure CLI创建了一个 Azure容器注册表实例。然后,使用Docker命令将容器镜像推入注册表,最后从注册表中拉出并运行镜像。Azure CLI是一个命令行工具,为管理Azure资源提供了很好的体验。CLI旨在简化脚本编写、查询数据、支持耗时操作等等。
该模型通过离线安装程序部署到Azure栈上的Kubernetes集群。Azure Kubernetes Service(AKS)简化了Kubernetes的管理,它通过Azure CLI等工具简化了集群的供应,并通过自动化的升级和扩展简化了集群的维护。此外,创建GPU集群的能力使AKS能够用于高性能服务和机器学习模型的自动扩展。
最终用户提供的数据是根据模型评分的。将预测模型应用于一组数据的过程称为对数据进行评分。一旦建立了模型,就可以将模型规格说明保存在一个文件中,该文件包含重构模型所需的所有信息。然后你可以使用该模型文件在其他数据集中生成预测分数。
从评分中获得的洞见和异常将被存储起来供以后上传。Azure Blob storage用于存储所有项目数据。Azure机器学习服务与Blob存储集成在一起,以便用户不必在计算平台和Blob存储之间手动移动数据。从该工作负载所需的性能来看,Blob存储也是非常划算的。
在全局应用程序中,全局相关和兼容性的洞见可供使用。Azure App Service是一种托管 Web应用程序、REST API和移动后端的服务。App Service不仅为你的应用程序添加了 Microsoft Azure的强大功能,比如安全性、负载平衡、自动缩放和自动化管理,还为你提供了DevOps能力,例如Azure DevOps、GitHub、Docker Hub以及其他来源的持续部署,包管理、准生产环境、自定义域和SSL证书。
最后,利用边缘评分数据对模型进行改进。
在为我们的职业劳务公司开发基于推荐的人员分配方案时,我们立刻意识到他们的时间有限,并且没有无限的计算资源。组织如何组织他们的工作以保持最高的生产力呢?
我们与客户的数据科学团队紧密合作,帮助他们开发了一组不同的技巧,以优化他们的工作,缩短生产时间,例如:
首先,不要在你拥有的整个数据集进行培训,而应在一个小得多的子集上:一旦数据科学团队清楚地了解了他们需要实现的功能、损失函数、度量标准和超参数值之后,再进行扩展。
重用以前项目中获得的知识:许多数据科学问题都是彼此想通的。从其他数据科学家过去解决过的类似问题中重用超参数或特征提取器的最佳值,这将为组织节省大量时间。
设置自动报警,通知数据科学团队某个特定的实验已经结束:假使实验时有些东西出错了,这么做将节省数据科学团队的时间。
使用Jupyter笔记本进行快速原型设计:数据科学家可以在对结果满意之后再将代码重写为 Python 包 / 类。
将实验代码保存在版本控制系统中,比如GitHub。
使用云中的预配置环境进行数据科学开发:这些是虚拟机镜像(如Windows虚拟机和Azure 数据科学虚拟机),使用一些常用的工具进行预安装、配置和测试,这些工具通常在数据分析和机器学习培训会用得到。
在运行实验时,列出要做哪些事情:数据收集、清理、注释;阅读新的数据科学主题,尝试新的算法或框架。所有这些活动都会对你未来项目的成功有所助益。建议可参考这几个数据科学网站:数据科学中心、KDnuggets、Revolution Analytics
从开始数据科学过程的第一天起,数据科学团队就应该与业务伙伴进行交互。数据科学家和业务伙伴不经常接触解决方案。业务伙伴希望远离技术细节,数据科学家也是想远离业务。然而,为了理解并行模型的实现以构建模型,他们之间保持持续交互是非常重要的。大多数组织都难以解锁数据科学以优化其操作流程,让数据科学家、分析师和业务团队采用一致的语言:不同的团队和数据科学流程常常是形成摩擦的根源。这种摩擦定义了新的数据科学铁三角,它基于的是数据科学、IT 运营和业务运营的协调配合。
为了与客户共同完成这项任务,我们实施了以下步骤:
1.要求C级别高管的支持采纳这一愿景,并将其推动至其他不同业务部分:哪里有清晰的目标, 愿景和支持,就在哪里先试点,最初的成功或胜利,会刺激大家进一步试验和探索,这经常会导致多米诺效应,让大家产生积极的转变。
2.营造一种实验文化:即使有了明确的目标,但通常仅凭这一点也不会带来成功的业务转型。在许多组织中,一个重要的障碍是员工没有足够的权力来实现变革。向员工充分授权有助于让员工参与进来,并让他们积极地为共同的目标做出贡献。
3.让每个人都参与到沟通中来:达成共识会增强绩效表现。如果数据科学家在没有其他人参与的情况下孤立地工作,组织将缺乏共同承担的愿景、价值观和共同的目标。跨多个团队的组织的共同愿景和共同目标,能带来协作的提升。
成为一家数据驱动型公司,更多的是一种文化转变,而不仅仅是数字化:因此,任何数据科学解决方案的结果都应让人类参与评估,这很重要。人类-数据科学的团队合作将会得到比任何一个单独的团队更好的结果。
例如,在我们的客户案例中,我们结合数据科学与人类经验,帮助他们构建、部署和维护了一个人员部署推荐解决方案,为新项目建议最优的人员组合和具有对口经验和专业知识的人员,这常常会直接带来经济价值。在我们部署了解决方案之后,我们的客户决定与几个项目团队进行试点。他们还创建了一个数据科学家和业务专家的v-Team,目的与机器学习解决方案并行开展工作,从两个试点团队使用Azure机器学习解决方案前后比较机器学习在项目完成时间、收入、员工、客户满意度等方面得出的结果。
这种由一组数据和业务专家进行的线下评估对项目本身非常有益,这主要有两个原因:验证了该机器学习解决方案能够为每个项目提高约 4% 到 5% 的贡献边际;该 v-Team 能够测试这个解决方案并创建一个可靠的即时反馈机制,使他们能够不断地监控结果并改进最终的解决方案。
在这个试点项目之后,客户成功地将我们的解决方案集成到了他们的内部项目管理系统中。
在开始这种数据驱动的文化转变时,公司应该牢记以下几点准则:
1.并肩工作:业界领先的公司越来越认识到,当技术能够助力人类,而不是取代人类时,它们才是最有效的。理解数据科学和人类为不同类型的工作和任务带来的独特能力将是至关重要的,因为这样重点就从自动化转向了对工作的重新设计。
2.对人类接触的认知:重点是要记住,即使高度电脑化的工作不得不保持在面向服务的层面,并由像数据科学家和开发人员这些角色来解释公司的成功,但仍需要创造力、同理心、沟通能力和解决复杂问题等必要的人类技能。
3.投资于劳动力的发展:对劳动力的发展、学习和职业模式予以重新关注也很重要,要不吝为其注入创造力。也许最关键的是对做有意义的工作的需求——尽管他们与智能机器有了新的合作,但人类将热切地拥抱这些工作。
在数据科学需要额外的目前昂贵得令人望而却步的基础设施(例如巨大的知识图谱),以在每个领域中提供上下文和替代人类经验的情况下,人类组件将特别重要。
通过在数据分析过程中应用健康数据科学组织框架中的这六个原则,组织可以针对他们的业务做出更好的决策,他们的选择将得到可靠的数据收集和分析的支持。
我们的客户能够实现一个成功的人员部署推荐解决方案,该方案为新项目推荐最优的员工组合和具有对口经验和专业知识的个人员工。通过将员工经验与项目需求结合起来,我们帮助项目经理更好更快地进行人员分配。
通过实践,数据科学过程将变得更快、更准确,这意味着组织将做出更好、更明智的决策,从而最有效地运营。