职场Guideline:13步分步解析一个 Data Science 项目从想法到实现的全过程

职场Guideline:13步分步解析一个 Data Science 项目从想法到实现的全过程

我曾经面试过各种数据科学职位的应聘者们。从初级数据科学家到聘用我所工作的数据科学团队的负责人。在招聘小组的各种面试中,有一些问题是我极其喜爱反复问到的。

无论是哪一个等级的数据科学岗位, 都有一些始终适用的问题。通常来说, 这些问题可以准确地评估应聘者对公司数据科学问题的热情,也可以测试他们的实践经验。

这些最受面试官欢迎的面试问题之一是要求应聘者描述他们将数据科学项目从构思到生产所用的过程。这种问题可以揭示数据科学家如何看待他们的工作流程以及他们过去对工作拥有多少所有权。通常来说,具有丰富实践经验的人会对这个问题有更深入的解答。

我认为, 一个数据科学家对他们的工作负责,是要从构想贯穿到数据产品的发布的。所以,数据科学家应参与整个过程中的每个步骤。基于这点,如果候选人跳过与其他团队或利益相关者合作的步骤,我会认为他们缺乏经验。如果你正在寻找较为初级的数据科学家岗位,这可能并无大碍,但是能够评估某人的动手经验水平总是好的。

我也总是鼓励候选人多举一些例子来描述他们从自己过去的工作中描述的每个步骤。这可以使面试官更好地了解他们迄今为止在数据科学领域的拥有的经验类型。例如,如果你正在面试一个人来创建数据产品,而候选人给出的所有例子都是来自进行网站分析的经验,那么他们可能没有合适的工作经验。或者,他们可能必须学习新的技能来适应你需要找的这个职位。

很显然,对于如何将数据科学项目从构思转变为生产这个问题本身并没有一个标准的答案。但我确实认为有一些通用的步骤可以适用于不同的项目的。以我的经验,从开始到启动一个数据科学项目的步骤是:

  1. 获取数据
  2. 研究
  3. 数据探索
  4. 数据清理
  5. 咨询利益相关者
  6. 定义成功 (设定目标)
  7. 创建V1 (version 1.0)
  8. 反馈
  9. 进行调整
  10. 退出
  11. 交付
  12. 运行
  13. 用户反馈

在以下这个例子中, 我将详细说明每个步骤所需要的内容。我还将从我的数据科学经验中提供一些示例,以解释这些步骤以及为什么我认为每个步骤对于执行良好的数据科学项目至关重要。

01 获取数据

描述一个项目本身可能是一个极其简单的方法。但是,对项目来说,合适的数据可能会包括好几个子步骤, 并且可能会遇到很多困难。通常来讲,获取数据涉及用SQL或Hive等相关语言编写一个或多个查询。这样,你将能够从公司使用的任何数据库系统中提取所需的数据。

不同的公司通常会用不同种类的数据。

你的公司可能会通过其网站上的用户或包含传感器的硬件来生成自己的数据。例如,你可能在为一家创建新型空气湿度传感器的初创公司工作。在这种情况下,你可能需要将传感器生成的数据与其他空气湿度读数源进行比较。你将必须确定分析需要多少个传感器的数据以及在什么时间范围内。

或者,你的公司可能已购买或被授予访问在其他位置生成的数据集的权限。例如,当大学或医院拥有包含遗传数据的数据集时,他们可以让公司以一定价格获得上述数据。在这种情况下,你可能需要预先进行大量的实验设计,来说服你的公司访问此数据,因此你的结果将为他们带来实质性的好处。

另一个关于已存在的数据集的例子是医疗保健索赔数据。我以前工作过的一家公司积累了庞大的健康保险数据集,这家公司声称这些数据集是从多个来源购买并合并而成的。我们有一个带有多个标签级别的数据模型,以便能够准确地选择所需的过程或条件数据。咨询数据模型和编写有效查询的过程有时可能很复杂,并且需要花费相当长的时间。通常,需要进行多次迭代才能使其正确。

除了上述示例,你的公司可能会要求你提供自己的数据集。这可能需要许多不同的形状或形式。他们的预算可能很紧张,需要你免费获取数据,在这种情况下,你将需要查看开源数据集。现在,许多政府数据集都是开源的,并且可以在多个领域使用。人口普查数据集之类的内容可用作基线比较或收集自己的见解。

无论你从何处获取数据,掌握成功提取数据的技能都非常重要。

02 研究

除非你之前进行过很多很多类似的分析,否则在启动新的数据科学项目时始终必须进行一些研究。

此步骤也可能在获取数据之前发生,它实际上取决于项目。你可能需要研究可用的数据类型和所需的类型。但是,如果你具有丰富的商业领域知识,则可能已经知道所需的数据类型以及在何处访问正确的数据集。

在这种情况下,你将能够继续研究其他人如何解决你遇到的问题类型。对于你的实验设计而言,这可能是一个很好的起点。

你应该始终独立,批判性地评估他人所做的事情,并确定类似的东西是否对你有用。显然,数据科学的工作不仅仅是盲目遵循别人使用之前的配方。但是,知道以前所做的事情可以为你自己的决策提供依据。如果其他人已经为你准备好了,从头开始并完全重新发明轮子是没有意义的。

根据你的统计专业知识,你可能还需要对选择哪种方法以及如何在可用的技术堆栈中实施方法进行一些研究。可能会有一些新的闪亮的机器学习算法完全适合你的问题和数据集,但是如果你没有进行任何研究,你永远不会知道真正的答案。

03 数据挖掘

这个过程通常很难,至少对我来说是这样。我喜欢在Databricks或Jupyte之类的笔记本上进行数据挖掘,这样在进行过程中可以轻松地实现可视化。我是一个非常有远见的人,因此图形是我数据探索过程不可或缺的一部分。

最好将这些调查用作确认你从第一步获得的数据确实是你期望的机会。从数据库提取数据时可能会发生错误,因此请确保检查数据并确认你拥有所需的内容。

你还可以进行一些汇总统计信息来描述数据集,具体取决于它采用的形式。你拥有的数据类型和要执行的分析将确定你需要进行的数据探索的类型。

你可能要看的一些示例如下:

  1. 你的结果变量或其他任何感兴趣变量的直方图
  2. 数值变量的均值,中位数和众数
  3. 感兴趣变量的五位数汇总(最小值,第一四分位数,中位数,第三四分位数和最大值;通常以箱形图的形式显示)
  4. 如果你有类别变量,请查看类别中的数据分布
  5. 你所有的栏目都填满了吗?
  6. 有没有遗漏的值?如果有多少?
  7. 你的数据集中是否存在无效值范围之外的无效条目?

04 数据清理

数据挖掘之后是数据清理。

根据你计划进行的分析类型,你的数据可能需要非常干净……

一些机器学习算法非常挑剔,不需要缺失值。如果你使用的是这样的算法,则需要决定如何获取一组良好的原始数据。

缺少值时,可以使用许多不同的方法来估算数据。但是,分析的目标将告知你选择哪个。完全估算数据可能不合适,在这种情况下,你可能必须消除数据集中包含缺失值的条目。请记住,缺少值的条目可能不会在你的数据中均匀分布,并且可能会使结果偏斜。通常,每种方法都有优点和缺点,你只需要选择最适合你的项目以及对公司最重要的方法即可。

只要确保你有足够的时间预算就可以正确地进行操作!

05 咨询利益相关者

数据科学项目中可能有许多不同的人是利益相关者:

  1. 产品团队-负责设计和实施产品路线图。与数据科学家合作,以确保数据元素符合设计和产品简介并按时交付。
  2. 设计团队-负责设计公司产品,使它们对用户或客户来说是理想的。与数据科学家合作,以确保产品设计与可用数据兼容。
  3. 数据工程团队-维护ETL(提取,转换,加载)管道,以便团队成员可以使用数据。与数据科学家紧密合作,以确保数据采用对公司正在开展的工作有意义的格式。也可能涉及提高代码效率和建立数据平台。
  4. 产品工程团队—有时分为前端工程师和后端工程师。他们编写构建产品的代码。与数据科学家合作,以确保数据元素以他们可以用来合并到产品中的格式交付。
  5. 营销团队-促进公司产品和设计的宣传,使用户和公众以理想的方式看待品牌。与数据科学家合作,探讨与数据元素有关的故事,并向公众说明数据科学的工作原理。
  6. 业务开发团队-为公司创造价值,通常是金钱价值。与数据科学家合作,获取他们所需的数据,以建立合作伙伴关系,销售产品,进行经纪交易等。
  7. 领域专家-特定领域中对公司或产品目标重要的专家。如果他们具有与数据相关的专业知识以及数据科学团队正在进行的任何实验,请与数据科学团队合作。
  8. 用户体验团队-有时是营销或产品团队的一部分。负责衡量用户对公司生产的产品的体验。与数据科学家合作,为用户提供有关数据产品的反馈。这可能对设计未来的数据科学项目很有帮助。

确保与项目中所有不同的利益相关者打基础是很重要的。这样即使你在项目中投入了大量时间和精力,也不会出现意外。你不想将自己的血液,汗水和眼泪投入分析中,只是发现另一个团队的某人想要在结束时稍作调整。节省一些挫败感,并在此过程的早期与他人交谈。

如果你正在使用的是数据产品,则需要与产品团队开会以达成产品要求。方法论的可见度也可能影响你解决问题的方法。

你可能需要向用户解释如何生成数据,在这种情况下,可能需要一种更简单的方法。相反,无论获取答案的过程有多复杂,准确性都是最高优先级。如果有一些解释性材料将与数据产品一起发布,则营销团队也可能需要参与此对话。

你可能需要咨询数据工程或产品工程团队,以找出数据需要采用的格式。特别是如果你的结果将显示在产品的前端。你可能需要与一个特定的人员一起将产品投入生产。在此过程的早期,与该团队成员建立良好的融洽关系是一个好主意。

如果你需要额外的时间或公司集群上的计算能力,则可能需要咨询其他工程师。仅当你拥有庞大的数据集或计划进行计算密集型分析时,才可能需要这样做。

公司中可能还有其他特定的利益相关者,专门针对你所从事的领域。这些领域专家应尽早向你介绍项目情况,以免错过那些具有专业知识的人所显而易见的东西。

例如,当我在一家医疗保健初创公司担任数据科学家时,我需要与该公司的医疗总监密切合作。他不仅会确保我以医学上准确的方式来构架我的分析,而且他还将在项目结束时进行医学检查。

领域专家也可以指导你确定哪种错误类型最不适合你的模型。根据主题,类型1(错误肯定)或类型2(错误否定)错误可能特别危险。例如,如果你正在建立一个模型来筛查罹患疾病的高风险人员,那么假阴性可能会使人们无法对该疾病进行测试,因此无法得到诊断。如果有可用的处理方法,那么你将需要优化模型以最大程度减少假阴性。

不要低估成为一名数据科学家的良好沟通者的重要性。你一天的大部分工作都花在与人交流上

06 定义成功

数据科学项目的成功取决于该项目的目标。但是,至关重要的是,在开始构建分析之前,定义成功的模样。提前了解分析或模型的最低要求是非常重要的,这样你就可以知道第一个版本何时可以共享。

如果你决定成功的过程是什么样的,则可能会产生无法满足公司需求的数据。

成功度量标准的一个示例是,如果你认为预测模型必须准备好达到一定的准确度水平,然后才能认为该模型可以投入使用。此外,你可能需要将误报或误报降低到某个预定义的级别以下,以便模型可以发布。

根据数据科学项目的类型,你可能需要让其他利益相关者参与来定义你的成功指标。例如,医学主管经常参与确定我的预测项目可接受的不同类型错误的级别。或者,产品团队可能对他们希望你的分析能够执行的操作及其性能水平有所了解。

07 创建 V1 (最初版本)

这是大多数人认为是“做数据科学”的过程的一部分。对我来说,实际编写代码以创建模型并执行分析是到目前为止最快的过程。与建立机器学习模型相比,我花费更多的时间来清理数据和进行研究。我希望这个故事和这些步骤确实向你突出了数据科学项目中涉及的所有其他部分,以及它们的重要性。

在此步骤中需要检查的主要内容是你创建的V1达到或超过了成功标准。如果不是,那么这很好地表明你要么需要继续努力,要么回到绘图板上。

我不会详细介绍创建分析的V1的过程,因为它对你所做的每个项目都会有很大的不同。在许多其他地方,你可以阅读有关如何进行不同类型分析的示例。如果你以前从未从事过特定类型的数据科学项目,那么机器学习教程可以使你对工作流程有个很好的了解。

08 反馈

甚至认为有时候这可能是一个令人不舒服的过程,获得对你工作的反馈确实很重要。对建设性的批评持开放态度可以极大地改善你的项目。

我认为对每个数据科学项目至少进行一次统计审查是一个好主意,你可以从数据科学团队的其他成员那里获得反馈。他们可能会研究你的方法以及所产生的实际结果。

在寻求反馈时,你还应该准备捍卫你所做的选择,尤其是如果你认为这些选择对你的分析是不可或缺的。如果你真的不认为外部需求是一个好主意,请不要试图接受外部需求。你有责任倡导数据正在讲述而不被他人希望说的话所打动的故事。

例如,可能有一个故事,营销团队希望以此为依据,但数据不支持。同样,产品团队可能希望你的数据产品适用于广泛的个人,但是,如果数据覆盖范围不够好,你可能需要退后一步并解释为什么这是不可能的。

在启动你的数据产品或分析之前,最好先与利益相关者标记这些问题。最好不要给任何人一个令人失望的惊喜,而要做一些专家的期望管理。

09 做出调整

根据你收到的反馈,你可能需要进行一些调整。这些变化可大可小,具体取决于你的要求。为了看看是否可以合并一些想法也许值得做更多的研究。如果它们不起作用,那么你至少可以说你已经调查过了。这样,人们不会觉得你在忽略他们的建议。

10 获得最终批准

综合了数据科学团队和其他利益相关者的反馈后,你可能需要获得最终批准。这取决于你正在从事哪种类型的数据科学项目,以及谁可能需要给你最后的批准。

如果你在此过程中一直将进展情况告知每个人,则可能无需从任何人处退出。或者,你可能需要数据科学团队的负责人才能让你顺利发货。否则,你可能会对其他团队的人更感兴趣。

如前所述,在我以前的数据科学工作之一中,我需要在运送任何医疗数据科学产品之前先征得医学总监的同意。

11 完成 V1 并按照要求的格式传达

一旦你满足了所有的平衡和检查要求,你就可以按照要求的格式完成数据元素的准备。

同样,这取决于你正在处理的项目类型,以及可能需要交付的内容。创建产品工程团队可以指向的数据表可能很容易。或者,它可能涉及与数据和产品工程团队一起在公司的网站上实施实时机器学习模型。此外,你可能需要与营销团队合作,以创建项目启动所需的其他数据元素。

12 运行

这是最容易的部分,尽管有时也是最紧张的部分。

你可以将你的测试版本放到世界各地,看看它是如何被接受的。有时会大张旗鼓,流量会激增,而其他时候则是软启动,让精选用户可以看到你创建的内容。无论哪种方式,你都将工作放在那儿。总是感觉好像你的数据元素正在被使用,并且辛勤的工作值得。

13 用户反馈

我知道我说过这些步骤是从构思到生产的,但我只是以为我会在这里最后偷偷走最后一步。即使在发布后从技术上获得用户反馈,我仍然认为参与数据科学家至关重要。

如果我们是设计和创建数据产品的人,那么我们确实需要知道公众对它们的看法。可以通过数据分析师,产品团队或用户体验团队来过滤反馈,具体取决于你公司的工作流程。

总的来说,我对用户反馈的建议是:

  1. 忽略讨厌的评论。互联网是一个令人恐惧的地方!
  2. 考虑/接受/回应建设性批评。即使你不同意,如果人们花时间去建设性的,那么如果可以的话,与他们互动也是一个好主意。这可能取决于你所在公司的政策。你的回应可能需要先由市场营销团队或公关人员来执行。
  3. 享受任何积极的态度。你为成功而努力。用户伸出手说谢谢总是很高兴的。它可以使你感到真正的赞赏。你可能也会从队友内部获得一些荣誉。因此,请享受你的劳动成果。

开始 V2 的开发 (版本更新)

数据科学家的工作是没有终点的。以我的经验,项目通常是一个迭代过程。你的数据产品或分析不可能一次完美。但是,生产并不一定要完美无缺,只需要让缺陷得到确认和记录即可。显然,你不应该发布低于标准的作品,但是我谨记不要在一个不完美的世界中追求完美。数据科学用于描述我们生活的世界,并且总是会有离群值

因此,花点时间欣赏一下你已经完成的工作,并准备好加入V2!

总结

希望这个故事能使你更好地了解某些数据科学工作流的外观。如果你正在考虑成为一名数据科学家,则可能需要反思所涉及的所有不同步骤,并考虑它们是否是你想要花费时间的方式。如果你认为自己喜欢从构思到生产再到发布的整个数据项目,那么也许你应该从事数据科学的职业。

原文作者:Kate Maries Lewis
翻译作者:Yi
美工编辑:过儿
校对审稿:Dongdong
原文链接:https://towardsdatascience.com/how-to-take-a-data-science-project-from-idea-to-production-8216a653011f