数据科学团队的运营不是通过观看 Coursera 和 Udemy 上的讲座和视频就可以学会的。不要误解我们的意思,这两个网站是学习数据科学和机器学习理论及实践问题的好地方。
不过,它们不教授有效的商业实践,也不教授如何运营商业环境里的数据团队。了解算法,知道如何使用 Hadoop,并不足以让我们拥有一个高效的数据团队。
给数据科学团队的建议
团队需要和其他部门一起工作,他们需要维护软件,向主管报告,当然,带来商业价值!与分析和商务智能一样,数据科学也只是让企业更高效地赚钱的工具。
大多数数据科学课程都没有提及上述内容。这就是为什么不仅自定义数据科学算法和模型是我们的重点之一,数据科学团队建设也是我们的重点之一。
我们希望提供一些好的方法,帮助数据科学团队取得更大的成功。这与算法和模型无关,一切都是关于企业里的数据专家如何运营数据团队。
ROI Vs. 算法与技术
作为程序员、数据科学家和工程师,对于我们的数据项目或者正在开发的软件,我们大多数人都把更多的注意力放在了技术方面。我们开发产品不只是为了钱,而是为了证明我们能做什么。这是一个挑战!我们是问题解决者。
也许我们希望证明,我们能够开发出一个算法,预测一款产品是否受欢迎。仅仅是为了好玩!
不过,归根结底,我们数据科学家、数据顾问和软件工程师都受雇于企业,而那些企业希望看到财政营收。你是使用了基于神经网络的算法,还是基于支持向量机的算法,这并没什么关系,只要最大限度地节省成本,或者带来最大的收益。
重要的是记住,数据科学家或大数据分析师越快弄清楚这个问题,就越能有效地发挥他们的作用。数据科学家都要有一点企业家精神。
数据科学家寻找机会为企业省钱,或者发现新的价值流。我们经常是正确的,因为我们不仅了解业务,我们还有数据支撑我们的观点。
这就是有一个与企业步调一致的数据团队的价值之一。他们有推动决策的数据。
数据工程
有个方面有时候会完成得比较仓促,那就是数据工程。它可能看上去不重要,可能看上去很容易修改。但是,如果数据的设计规划不便于操作和开发,那么数据科学家在设计算法和下游工作流时会陷入时间地狱。
这是indeed.com 上数据工程师的职位需求占比高于数据科学家的原因之一。
数据的组织方式在分析方面非常重要。我们团队有几名成员最初就是数据工程师,这就是为什么他们如此重要。他们不仅能够创建优美的算法,还能够创建数据管道,让数据能够自然地从点A 到点B,从数据仓库到算法。
经过良好设计规划的数据易于修改,容易接入新模块及报告新指标,等等。它可能看起来奇怪,但借助良好的数据工程,一切都是有可能的!
系统设计也是为了数据科学家
在设计算法的时候很容易忘记,设计结果是需要真正地在生产环境中实现的。
数据科学家不能只是设计算法并就此止步。相反,那通常需要某种形式的数据仓库或数据存储中心,而且作为一个系统,既提供数据,又记录来自开发好的模型的数据。算法不是一个本身可以创造美元的独立岛屿。
通常也会有一些某种形式的接口,用户可以与之交互。
举例来说,这可能是一个网站或者一个故事板。其目的是让终端用户对直接传达给他们的东西有可行且可理解的见解,而不用他们转换模型产生的随机数和输出。
当我们只是在课堂上做一个Kaggle 题目或者创建一个项目时,这会被忽略。这就是为什么像Galvanize 这样的项目会让他们的学生和实际的企业建立合作伙伴关系,因为将一个算法投入生产环境所需要完成的工作比只是开发它要多。
需要操作老系统,筛选API 文档,还有缺陷、变通方案,当然还有公司政治。
公司政治,是的,你会卷入的
企业总是有政治,没有办法可以绕过。数据科学高管和项目负责人需要能够和其他团队共事,像其他部门一样筹集资金。
这需要了解其他高管想要什么又需要什么,务必保证他们支持你的项目。如果他们不支持你的项目,如果他们等待机会背后捣鬼(而且那种情况出现了),那么你的项目就会失败。
不要控制,而是要引导其他团队的负责人,让他们同意你的观点,或交换方案,或折中方案。务必确保你没有触到任何人的痛点……至少,在你的数据团队多次证明自己之前不要。即使已经多次证明过自己,也不要让自己变得难以共事。
否则,没有人会为你的业务团队提供资源。
文档是数据团队的朋友
好吧,有件事85% 的程序员都得承认,就是他们讨厌文档。没关系,这不是最有趣的事。不过,坚持编写文档非常重要。
数据科学算法、数据结构、软件都需要不断地记录到文档上。
没有人要求数据团队再写一本《汤姆·索亚历险记》。务必保证注释清晰易懂,任何程序员都可以理解。
你永远不知道一个团队成员何时会离开,从而留下一堆进行到一半而又没有文档的项目。
因此,为了保持可维护性,务必让你的数据团队随着项目进行编写项目文档。那会让你的团队节省大量处理技术债务的时间,并确保你的项目可以继续运转下去。
数据科学项目需要有软件QA 和生命周期
数据科学是软件开发的一部分。就是说,需要有一个流程来确保开发出的代码健壮、可维护。
怎么做?
针对代码和数据设定一个不错的 QA 流程,确保代码从开发环境进入生产环境有一个标准化的流程。
不,你不应该在生产环境中测试代码!
问题就是那样出现的!!!
不要误解我们的意思,你需要推出代码,但不能以破坏构建为代价。
同行审查、QA 和单元测试可以帮数据团队避免许多麻烦。确保不要出现持续的干扰,如一名工程师花很长的时间对其他人的代码进行同行审查。
同时,确保你没有让开发出的代码直接进入生产环境里!!
算法不是数据科学的全部
事实上,数据科学和分析并不是一颗魔弹。它只是另外一种工具,企业可以用它增加收益,降低成本。如果运营得当,它会产生巨大的竞争优势。如果数据设计规划良好,那么团队其他的业务也会运转良好。
查看英文原文: Practically Managing A Data Science Team
感谢蔡芳芳对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论