如何成为一个数据科学家

2024-05-06 05:27

1. 如何成为一个数据科学家

1)学好 python。
现在几乎所以公司的数据都可以 api 给你,而 python 的数据处理能力强大且方便。加之在 machine learning 的很多算法上,python 也独俏一方。另外,它的简明方便迅速迭代开发,15 分钟写完个算法就可以看效果了。
除此之外,py 还有点酷酷的感觉。任何程序拿 matlab 和 c++ 都是可以写的,不过我真没认识过哪个 d 愿意自己把自己扔那个不酷的框框里:D
对不规则输入的处理也给 python 一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要
分词,分句
提取特征
整理缺失数据
除掉异类(outlier)
在这些时候,python 可谓是神器。这里做的 1-4 都可以直接在 scikit-learn 里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。
简而言之,对于数据科学面临的挑战,python 可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2)学好统计学习
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的 prediction 而已。因此这两个学科又开始重新融合。
3)学习数据处理
这一步不必独立于 2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用 80 年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的 80 年代数据集上,为什么不自己搜集一些呢?
4)变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。

如何成为一个数据科学家

2. 如何有效的成为一名数据科学家

我认为有几个大方面
1)学好 python。
现在几乎所以公司的数据都可以 api 给你,而 python 的数据处理能力强大且方便。加之在 machine learning 的很多算法上,python 也独俏一方。另外,它的简明方便迅速迭代开发,15 分钟写完个算法就可以看效果了。
除此之外,py 还有点酷酷的感觉。任何程序拿 matlab 和 c++ 都是可以写的,不过我真没认识过哪个 d 愿意自己把自己扔那个不酷的框框里:D
对不规则输入的处理也给 python 一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要
分词,分句
提取特征
整理缺失数据
除掉异类(outlier)
在这些时候,python 可谓是神器。这里做的 1-4 都可以直接在 scikit-learn 里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。
简而言之,对于数据科学面临的挑战,python 可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2)学好统计学习
略拗口。统计学习的概念就是“统计机器学习方法”。
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的 prediction 而已。因此这两个学科又开始重新融合。
为什么统计学习很重要?
因为,纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升 20%,你把你的两个预测股票上涨还是下跌的 model 套在新浪的例子上,然后给你的上司看。
Model-1 有 99%的预测能力,也就是 99%的情况下它预测对,但是 Model-2 有 95%,不过它有例外的一个附加属性——可以告诉你为什么这个股票上涨或者下跌。
试问,你的上司会先哪个?问问你自己会选哪个?
显然是后者。因为前者虽然有很强的预测力(机器学习),但是没有解释能力(统计解释)。
而作为一个数据科学家,80%的时间你是需要跟客户,团队或者上司解释为什么 A 可行 B 不可行。如果你告诉他们,“我现在的神经网络就是能有那么好的预测力可是我根本就没法解释上来”,那么,没有人会愿意相信你。
具体一些,怎么样学习统计学习?
先学好基本的概率学。如果大学里的还给老师了(跟我一样),那么可以从 MIT 的概率论教材【1】入手。从第 1 章到第 9 章看完并做完所有的习题。(p.s.面试 Twitter 的时候被问到一个拿球后验概率的问题,从这本书上抓来的)。
了解基本的统计检验及它们的假设,什么时候可以用到它们。
快速了解统计学习有哪些术语,用来做什么目的,读这本【5】。
学习基本的统计思想。有 frequentist 的统计,也有 bayesian 的统计。前者的代表作有【2】,后者看【3】。前者是统计学习的圣书,偏 frequentist,后者是 pattern recognition 的圣书,几乎从纯 bayesian 的角度来讲。注意,【2】有免费版,作者把它全放在了网上。而且有一个简易版,如果感觉力不从心直接看【2】,那么可以先从它的简易版开始看。简易版【4】是作者在 coursera 上开课用的大众教材,简单不少(不过仍然有很多闪光点,通俗易懂)。对于【3】,一开始很难直接啃下来,但是啃下来会受益匪浅。
注意,以上的书搜一下几乎全可以在网上搜到别人传的 pdf。有条件的同学可以买一下纸制版来读,体验更好并且可以支持一下作者。所有的书我都买了纸制版,但是我知道在国内要买本书有多不方便(以及原版书多贵)。
读完以上的书是个长期过程。但是大概读了一遍之后,我个人觉得是非常值得的。如果你只是知道怎么用一些软件包,那么你一定成不了一个合格的 data scientist。因为只要问题稍加变化,你就不知道怎么解决了。
如果你感觉自己是一个二吊子数据科学家(我也是)那么问一下下面几个问题,如果有 2 个答不上来,那么你就跟我一样,真的还是二吊子而已,继续学习吧。
为什么在神经网络里面 feature 需要 standardize 而不是直接扔进去
对 Random Forest 需要做 Cross-Validatation 来避免 overfitting 吗?
用 naive-bayesian 来做 bagging,是不是一个不好的选择?为什么?
在用 ensembe 方法的时候,特别是 Gradient Boosting Tree 的时候,我需要把树的结构变得更复杂(high variance, low bias)还是更简单(low variance, high bias)呢?为什么?
如果你刚开始入门,没有关系,回答不出来这些问题很正常。如果你是一个二吊子,体会一下,为什么你跟一流的 data scientist 还有些差距——因为你不了解每个算法是怎么工作,当你想要把你的问题用那个算法解决的时候,面对无数的细节,你就无从下手了。
说个题外话,我很欣赏一个叫 Jiro 的寿司店,它的店长在(东京?)一个最不起眼的地铁站开了一家全世界最贵的餐馆,预订要提前 3 个月。怎么做到的?70 年如一日练习如何做寿司。70 年!除了丧娶之外的假期,店长每天必到,8 个小时工作以外继续练习寿司做法。
其实学数据科学也一样,沉下心来,练习匠艺。
3)学习数据处理
这一步不必独立于 2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用 80 年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的 80 年代数据集上,为什么不自己搜集一些呢?
开始写一个小程序,用 API 爬下 Twitter 上随机的 tweets(或者 weibo 吧。。。)
对这些 tweets 的 text 进行分词,处理噪音(比如广告)
用一些现成的 label 作为 label,比如 tweet 里会有这条 tweet 被转发了几次
尝试写一个算法,来预测 tweet 会被转发几次
在未见的数据集上进行测试
如上的过程不是一日之功,尤其刚刚开始入门的时候。慢慢来,耐心大于进度。
4)变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。
况且即使你有这个条件,这样频繁切换上下文会浪费更多时间。比如你让同事早上给你塞一下数据到数据库,但是下午他才给你做好。或者你需要很长时间给他解释,逻辑是什么,存的方式是什么。
最好的变法,是把你自己武装成一个全能工作师。你不需要成为各方面的专家,但是你一定需要各方面都了解一点,查一下文档可以上手就用。
会使用 NoSQL。尤其是 MongoDB
学会基本的 visualization,会用基础的 html 和 javascript,知道 d3【6】这个可视化库,以及 highchart【7】
学习基本的算法和算法分析,知道如何分析算法复杂度。平均复杂度,最坏复杂度。每次写完一个程序,自己预计需要的时间(用算法分析来预测)。推荐普林斯顿的算法课【8】(注意,可以从算法 1 开始,它有两个版本)
写一个基础的服务器,用 flask【9】的基本模板写一个可以让你做可视化分析的 backbone。
学习使用一个顺手的 IDE,VIM, pycharm 都可以。
4)读,读,读!
除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。
通常,非常厉害的数据科学家都会把自己的 blog 放到网上供大家参观膜拜。我推荐一些我常看的。另外,学术圈里也有很多厉害的数据科学家,不必怕看论文,看了几篇之后,你就会觉得:哈!我也能想到这个!
读 blog 的一个好处是,如果你跟他们交流甚欢,甚至于你可以从他们那里要一个实习来做!

3. 如何成为一位数据科学家

数据科学不是一个具体的职务,而是一种在机构中解决问题的方法。因此,数据科学可以包含多种教育背景、技能、工具、实践。实际工作中的数据科学家们,背景和技能的跨度很大,很难被一概而论。

数据科学是用数据主导的答案解决实际问题的实践。实现这个目标的技术可能多种多样。你会常常听到数据科学家使用传统统计学、贝叶斯方法、机器学习、计算工具、行业领域知识来回答问题。

第一,掌握相关业务知识


第二,学会数理统计和数据分析


第三,学会计算机相关知识


第四,学学会数据处理与收集

第五,学会机器学习和数据挖掘

如何成为一位数据科学家

4. 如何成为一位数据科学家

  关于数据科学家的困惑很大部分归咎于:数据科学不是一个具体的职务,而是一种在机构中解决问题的方法。因此,数据科学可以包含多种教育背景、技能、工具、实践。实际工作中的数据科学家们,背景和技能的跨度很大,很难被一概而论。
  相对而言,描述数据科学的实践是什么样的可能更容易。
  简单地说,数据科学是用数据主导的答案解决实际问题的实践。实现这个目标的技术可能多种多样。你会常常听到数据科学家使用传统统计学、贝叶斯方法、机器学习、计算工具、行业领域知识来回答问题。
  有时数据的规模会非常巨大,需要使用复杂的工具和方法来穿过迷雾,得到隐藏在数据中的清晰结论。但是没有哪个方法、工作、算式能回答所有问题,所以也很难为数据科学家下定义。
  展示可能比陈述更有说服力。就让我们来走入数据科学家平凡又不平凡的一天。
  早晨
  早晨的第一件事可能是这一天日程中为数不多的惯例。
  我们的团队在早上进行例会,分享前一天的进展和问题。这和软件开发的“站立”会议可能有点不同。对我们来说,“进展”既可以是建设了一部分软件,也可以是阅读了一篇可以让我们对手头问题有更深理解的论文。
  数据科学可能在许多方面与大学里的学术行为不同,但它依然是对科学方法的合理运用。
  通常,我们的挑战是如何把“未知”变成“已知”。不仅如此,还要让它“可执行”。
  这意味着通过分析数据检验某个假设,建立测量效果的方法,对这个过程进行迭代,直到最终的研究结果被修正到足够有用的水平。晨会是一个交流各个试验进展的机会。
  上午
  现在我们有了各自的任务。是时候做一点实际工作了。这是一天中最有趣的部分。这是我坐下来专注于一个实际问题的时候。
  这可能意味着研究处理偶图的方法,或者写一些代码计算高斯超几何函数。但每个星期面对的问题很少相同。拥有数学、统计、编程的背景对解决这些问题来说很重要,但仍然不够。成为每种方法的专家是不可能的。下一个问题将需要什么知识也是无法预知的。
  这就是为什么数据科学家需要不断学习和无穷的好奇心。
  多数情况下,每个新问题需要一种新方法。这些方法不仅对你来说是新的,对整个世界来说也是新的。这是数据科学的挑战之处和刺激来源。
不确定性不仅是一种统计学的属性,也是一种生活方式。
  午间
  数据科学的实践不止于应用某些算法的技术细节,或是在白板上写出高深的算式。
  归根结底,我们要解决现实生活中的问题。这意味着理解其他人面对的问题。午间是跟客户、商业拓展部门、服务部门以及任何对我们客户和合伙人每天面对的问题有全面了解的人士碰面的好时候。
  大数据分析和机器学习的力量如果不能为他人创造便利就没太大意义。这是数据科学中一个重要的,但是常被忽略的步骤。它决定一个项目最终的成败。这也是区分数据科学与传统学术的一点。
  把一个业务问题翻译成一个缜密的研究项目,再把研究结果翻译成一个实际的解决方案,这需要对业务的深入理解,以及大量的创造力。
  闭门造车,没完没了做算法调优的数据科学团队永远不会成功。的确,有时为了让一个项目最终交付需要这么做。但如果这些都不能投入实际应用还有什么意义?
  数据能告诉我们的关于世界的知识与数据本身中间存在一道鸿沟。与一线工作人员保持良好的交流关系,是弥补这一鸿沟的唯一方式。
  下午
  我们已经卷起袖子,从技术和实际的层面钻研了问题。是时候退一步,思考一下全局了。
  我们常常在下午花些时间详细讨论某个项目的目标,或者探讨把一个研究项目变成可交付的形式所需的剩余步骤。
  与产品团队的密切交流可以确保我们的工作与机构的总体愿景/目标保持一致。确保专注于关键问题是很重要的。由于我们的工作是解决问题,所以必须确保解决方案行得通。我的意思是,在实际工作中行得通。根据特定业务提供解决方案只是个开始。
  我们需要建立可靠的、可重复使用的工具。
  这既包括把一个试验推广到更多的实用案例,也包括构造一个能够深入产品的解决方案。
  这个环节是我们最像软件开发者的部分,考虑并编写一些测试来确保表现、稳定性、扩展性。我们在Umbel的软件工程团队负责建立宏大的系统,我们不能扔给他们额外的工作,让他们为我们收拾烂摊子。
  把这些试验变成软件的一个功能,唯一的办法是在项目全程时刻想着这个目标。这也就是为何研究阶段不应只包含数学。
  我们需要知道我们不仅能解决某个问题,还能现实的限制中构造软件来解决这个问题。
  结束这一天
  经历了所有这些之后,有必要深吸一口气,看看自己究竟走了多远。有些日子会比其他日子走的更远。大多数试验则以失败告终。
  多数解决方案在最终展示之前需要调整打磨。通常很少有什么能保证你选择的路线是对的。开天辟地的过程始终伴随着不确定性。但这个过程中的每天,你都会学到新东西。这一天的结尾,我们反思我们学到了什么,并把这有关世界的新知识带到明天的晨会。
  经过足够的努力,我们最终获得针对特定问题的直接可行的答案。
  我们可以对这个答案充满自信,因为它由数据严谨地支撑。这个时候,我们还是没有结束代码的编写。正如我之前所说,数据科学项目的一个关键环节是把最终结果翻译成有意义、实用的东西。
  我们需要把我们学到的东西有效地传达给不同背景的受众。最终,我们需要利用数据讲一个故事。跟其他环节一样,这个环节没有什么唯一的正确方法。这个环节中我们寻找用图表把结果可视化的方法,或者在一个平面展示从问题到解答的各个环节,或者仅仅是宣布“好的,我们需要做的事是这样的。”
  这里的关键在于,在结束时,每个人都能理解要做什么以及为什么这么做。

5. 一文读懂如何成为数据科学家

你为成为数据科学家做了充分的准备,但实际的工作将于你的预期大不相同。
你为成为数据科学家做好了充分的准备。你参加Kaggle比赛,看了大量的Coursera课程。你感觉已经准备好了,但数据科学家的实际工作将与你的预期大不相同。
本文探讨了数据科学家新手的5个常见错误。这是由我在Sébastien Foucaud博士的帮助下一起总结的,他在学术界和行业领域有指导年轻数据科学家有超过20年的经验。本文旨在帮助你更好地为数据科学家的实际工作做好准备。
误区1 热衷参加Kaggle比赛
你通过参与Kaggle比赛练习了数据科学技能。如果你掌握决策树和神经网络那就再好不过了。但其实作为数据科学家,你不需要完成这么多的模型融合。记住,一般来说你将花80%的时间进行数据预处理,剩下20%的时间用于构建模型。
参加Kaggle比赛的好处在于,给出的数据都很从而你有更多的时间调整模型。但是在实际工作中则很少出现这种情况,你需要使用不同的格式和命名方式来汇总不同来源的数据。
你需要做的是,熟练掌握你大部分时间将要做的事,即数据预处理。例如抓取图像或从API收集图像;从Genius收集歌词数据等。为解决特定问题准备所需的数据,然后将其输入到计算机中开始机器学习生命周期。精通数据预处理无疑将大大帮助你成为一名出色的数据科学家,从而让你在公司制定决策中起到关键作用。
误区2 神经网络能搞定一切
深度学习模型在计算机视觉和自然语言处理领域优于其他机器学习模型。但也有明显的缺点。
神经网络需要大量数据。如果样本较少,那么使用决策树或逻辑回归模型效果会更好。众所周知,神经网络难以说明和解释,因此被称为”黑匣子“。当产品负责人或主管对模型输出产生质疑时,你必须进行解释,而传统的模型更容易解释。
有很多出色的统计学习模型,你需要了解其优缺点,并根据具体任务应该相关模型。除非是用于计算机视觉或自然语音识别等专业领域,否则传统的机器学习算法的成功率会更高。你很快就会发现,像逻辑回归等简单的模型是最好的模型。
误区3 机器学习是产品
在过去十年机器学习大受吹捧,许多创业公司都认为机器学习能解决任何存在的问题。
机器学习永远不应该是产品。机器学习是强大的工具,用于生产满足客户需求的产品的。机器学习可以用于让客户收到精准的商品推荐;准确识别图像中的对象;帮助企业向用户展示有价值的广告。
作为数据科学家,你必须以客户为目标制定计划,从而你才能充分利用机器学习。
误区4 混淆因果关系和相关性
大约90%的数据是在过去几年中产生的。随着大数据的出现,机器学习从业者可以获得大量数据。由于有大量的数据需要分析评估,学习模型也更容易发现随机的相关性。
上图显示了美国小姐的年龄与蒸汽、热蒸汽和发热物体导致的谋杀总数。根据这些数据,算法会学习美国小姐的年龄与某些物体导致谋杀的模式。然而,这些数据点实际上是无关的,并且这两个变量对其他变量没有任何预测作用。
当在数据中发现模式时,要应用你的专业知识。当中是相关性还是因果关系?回答这些问题是从数据中得出分析见解的关键。
误区5 优化错误的指标
开发机器学习模型遵循敏捷的生命周期。首先,你定义概念和关键指标。然后,将结果原型化。接着,不断进行改进直到指标令你满意。
在你构建机器学习模型时,记得要进行手动错误分析。虽然这个过程繁琐且费时费力,但可以帮助你在迭代中有效地改进模型。
结语
年轻的数据科学家能为公司提供巨大价值。他们通常是自学成才,因为很少有大学提供数据科学学位。同时他们具有强烈的好奇心,并且对自己选择的领域充满热情,并渴望了解更多的知识。因此对于刚入行的数据科学家来说,一定要注意以上提到的误区。
注意以下几点:
· 练习数据管理
· 研究不同模型的优缺点
· 让模型尽可能简单
· 检查结论中的因果性和相关性
· 优化最有希望的指标

一文读懂如何成为数据科学家

6. 怎样成为数据科学家?

1、复习你的数学和统计技能
一个好的数据科学家必须能够理解数据告诉你的内容,做到这一点,你必须有扎实的基本线性代数,对算法和统计技能的理解。在某些特定场合可能需要高等数学,但这是一个好的开始场合。
2、了解机器学习的概念
机器学习是下一个新兴词,却和大数据有着千丝万缕的联系。机器学习使用人工智能算法将数据转化为价值,并且无需显式编程。
3、学习代码
数据科学家必须知道如何调整代码,以便告诉计算机如何分析数据。从一个开放源码的语言如Python那里开始吧。
4、了解数据库、数据池及分布式存储
数据存储在数据库、数据池或整个分布式网络中。以及如何建设这些数据的存储库取决于你如何访问、使用、并分析这些数据。如果当你建设你的数据存储时没有整体架构或者超前规划,那后续对你的影响将十分深远。
5、学习数据修改和数据清洗技术
数据修改是将原始数据到另一种更容易访问和分析的格式。数据清理有助于消除重复和“坏”数据。两者都是数据科学家工具箱中的必备工具。
6、了解良好的数据可视化和报告的基本知识
你不必成为一个平面设计师,但你确实需要深谙如何创建数据报告,便于外行的人比如你的经理或CEO可以理解。
7、添加更多的工具到您的工具箱
一旦你掌握了以上技巧,是时候扩大你的数据科学工具箱了,包括Hadoop、R语言和Spark。这些工具的使用经验和知识将让你处于大量数据科学求职者之上。

7. 我怎样成为数据科学家

如果你想要成为数据科学家需要有以下特点:
  1、教育——数据科学家受教育程度都很高,其中88%至少拥有硕士学位,46%有博士学位。虽然有一些名人特例,不过通常来说成为一名数据科学家需要扎实的教育背景,才能掌握所需的深度知识。最常见的研究领域包括数学与统计学(32%),其次是计算机科学(19%)以及工程学(16%)。
  2、SAS软件与/或R语言——对其中至少一种分析工具有深入的了解,一般对数据科学来说R语言更好一些。
  技术能力:计算机科学
  3、都是公司在招聘数据科学类角色时最常提出的语言要求。
  4、Hadoop平台——尽管不是总有这个需求,不过在很多情况下掌握它的人优势更大。熟悉Hive或Pig也是很有利的卖点。熟悉类似Amazon S3这样的云工具也会很有优势。
  5、SQL数据库/编程——尽管NoSQL和Hadoop已经成为了数据科学很大的组成部分之一,招聘者还是希望能够找到可以编写与执行SQL复杂查询的候选人。
  6、非结构化数据——数据科学家能够处理非结构化数据这一点非常重要,无论这些数据是来自社交媒体、视频源或者音频的。
  非技术类技能
  7、求知欲——毫无疑问最近到处都能看到这个词,尤其是在与数据科学家关联时。Frank Lo在几个月前的博文中描述了这个词的含义,并且讨论了其他必须的“软技能”。
  8、商业智慧——想要成为数据科学家,需要充分了解自己工作的行业,并且知道公司想要解决的商业问题是哪些。能够根据数据科学分辨出解决哪些问题对公司来说更为重要,并且能够找出利用数据的新办法,这些是非常关键的。
  9、通用技能——寻找优秀数据科学家的公司想要的是这样的人材:能够清楚顺畅地将自己的技术发现转化为非技术团队(比如市场部或者销售部)能够使用的内容。

我怎样成为数据科学家

8. 如何成为一名合格的数据科学家?

作者 | 彭鸿涛 张宗耀 聂磊 
来源 | 大数据DT 
 一、数据科学家的工作模式与组织结构 
 数据科学家需要与业务专家一起工作才能发挥最大价值。实际工作中两种角色如何配合,取决于是采用业务驱动的模式还是数据驱动的模式。 
 1. 数据驱动还是业务驱动 
 业务驱动的特点是业务人员主导数据分析需求的提出、结果的应用,在业务中应用数据洞察;而数据驱动的特点是更看重主动应用数据分析手段,从数据洞察发起业务、改善业务,当然在业务执行时也需要广泛应用数据洞察。在较新的业务领域采用数据驱动比较适合,已有复杂业务则采用业务驱动较好。 
 然而从自身能力的发展、数据驱动逐渐成为主要的工作模式的情况来看,数据科学家需要思考如何将数据驱动的模式做得更好,并且愿意承担更多责任。所以,除了算法、用法等基本技能,还需要考虑如何改善业务。 
 下图所示的职责占比只是示意,其实最核心的是由哪种角色来主导,在工作中也未见得业务专家不能主导数据驱动的模式。从业务结果的角度来看,所谓业务驱动和数据驱动只是到达一个既定目标时不同的工作方式而已。在实际的业务中也不会分工非常明确,即不会限定业务人员只能做什么或数据科学家只能做什么,只有相互无缝协作才是最佳的工作模式。 
 ▲业务专家与数据科学家的两种配合方式 
 2. 数据科学家团队的组织结构 
 数据科学家团队的组织结构关系到数据应用的效率、管理的效率、个人的发展等诸多方面,企业在设置这个组织结构时需要认真考虑。每个企业的实际情况不同,可以采用不同的方法。数据科学家的组织结构一般分两种,即分散式结构和集中式结构。 
 分散式结构是数据科学家属于确定的业务部门,这样的组织结构的好处是其可以紧密地与业务人员合作,将业务问题转换为高效的数据分析任务。 
 但是其也有不足,一方面数据分析的知识积累是在个人身上,而不是在团队,另外一方面就是因为角色的限制使得业务部门内的数据科学家没有上升空间。业务部门内的数据科学家若要在职业道路上继续前进,要么离开,要么担任其他角色。一旦发生数据科学家的人事变化,这对团队稳定、知识积累等都是不利的。 
 集中式的数据科学家组织结构就是跨业务条线而成立独立的专门做数据分析的结构。这样的组织结构的好处就是团队相对稳定,给成员提供了不断成长的空间,也避免了知识积累的流失。 
 但是其也有不足,由于数据科学家脱离业务部门而独立存在,导致团队成员对业务的理解不够深入,模型的产出可能效率低下。业务部门也可能只将其看作支持部门,而不会在实际业务中有太多引入。 
 企业在构架数据科学家组织架构时,也可采用混合的结构。即使是集中式的组织结构,其汇报的层级也可能不同。没有所谓明确的业界标准的说法,因地制宜的做法才是最实际的。 
   二、数据科学家的工作方法要点 
 数据科学家的核心任务之一是通过数据分析手段将数据洞察应用在实际业务中,并能产生有效的结果。数据科学家在实际工作中需要注意以下要点,以确保上述目标的达成。 
 1. 开始工作以前确保具备成功要件 
 在开始一件工作前,最好先明确一下业务场景、数据可获得性、数据质量等重要信息。在很多情况下,会出现因数据不支持无法进行细致分析、模型结果很好但是落地应用时没有对应的资源支持、数据分析只是探索没有对应的使用场景等问题。这些因素会严重影响数据分析的价值。 
 笔者作为顾问给多个客户实施数据分析项目时,就遇到过上述的问题。从客户的角度来讲,其关心的是业务问题的解决,并不会过多细致地考虑实施过程的细节。只有努力地尝试去做,才能发现有些问题会严重阻碍数据分析的进行,这也会影响数据分析的最终效果。 
 2. 同时输出两种价值 
 假设要通过数据分析手段改善某业务问题,如构建预测模型筛选高价值、高响应率的客户,即使是在目标非常明确的情况下,数据科学家也要在做的过程中保证两种输出结果。 
 (1)重要发现 
 数据分析过程中势必要进行数据提取、数据处理、数据探查等一系列基础工作。在这些基础工作的过程中,往往会隐藏着有巨大业务价值的信息。比如,笔者的团队在给某金融机构构建高端客户的相关模型时发现一些信息,如“大部分客户只持有一类理财产品且在半年内没有交易活动”,这些信息对于后期的营销策略制定至关重要。 
 所以,数据科学家在实际工作中需保持“业务敏感性”,对于数据背后的业务故事保持好奇心,同时将一些重要的数据发现协同模型结果一并输出,这可以大大提高分析主题的价值。 
 (2)模型结果 
 给定分析主题,目标模型结果就可以基本确定,如寻找高价值客户就是模型输出一个名单,风险预警就是给出风险评分以及原因。这是模型输出的最基本形式。 
 在实际的模型实施应用中,业务人员会经常以挑剔的眼光来看待模型,并且基于模型结果总是有不同的疑惑需要数据科学家来解答。典型的疑惑如“聚类分析模型确实将客户分了几个类别,但是我还是不知道该如何营销这些客户”“社交网络分析模型给出了潜在的高价值客户名单,但这些信息不足以让营销人员开展营销”。 
   出现这种情况时,一种简单的做法就是和业务人员深入讨论,梳理出他们的关注点,然后将对应的指标从数据库中提取出来,作为模型输入的补充一并交给业务人员。 
 从本质上来讲,出现业务人员疑惑的原因是“业务人员期待模型输出决策而不是名单”以及团队缺乏将模型输出转换为营销决策的能力。数据科学家也需要具备将模型结果转换为业务决策的能力。 
 3. 充满想象力地开展工作 
 算法能做到什么是数学范畴的知识,数据科学家的核心工作就是将业务需求转换为一系列的数据分析实践过程。若将各个算法看作一个个组件,那么用一个算法来解决问题还是用多个算法的组合来解决问题,需要数据科学家的想象力和不断尝试。 
 笔者的团队曾给某客户构建模型时,其需求是“根据客户持有产品的现状推荐产品,达到交叉销售的目的”。这是一个非常不具体的需求,能做的范围很大,能用的算法工具也很多。 
 最后我们采用的是构建“客户聚类与产品聚类的交叉分布以及迁移矩阵,并据此来展开不同目的营销”,若向上销售则可推荐同类产品,交叉销售则可推荐不同类的产品。这种做法之前没有实施过,但是结果证明其非常有效,仅在一次营销应用中就带来数十亿的营业额。 
 4. 按照敏捷的方式来构建模型 
 数据挖掘过程也可以看作一个项目过程,从项目管理的角度当然可以按照敏捷的方式来进行。数据科学家需要积极主动地汇报分析思路、预期结果、进度等重要信息。时刻与业务人员以及管理人员保持沟通,对需求变化保持开放,将对模型的实际应用会有巨大的帮助。 
 一般情况下,让一个对数据和业务都不了解的人来构建模型,往往需要数月的时间;但让一个熟悉数据、业务、算法工具的人来建模,则可能只需几天就可以完成。不论哪种程度的人员来建模,都可以按照敏捷的方式来管理建模过程。 
   笔者与建模方法论CRISP-DM的提出者之一Julian Clinton一起工作过4年时间,在长期的项目实践中我们一直坚持该方法论所倡导的核心要点:紧贴业务、不断探索、以结果为导向、模型在应用后仍需不断调优等。事实证明,这些原则非常有效。CRISP-DM方法论的实施与实施过程中按照敏捷的方式来管理是相辅相成、相得益彰的。 
 5. 以业务的成果来衡量自己的工作 
 模型的效果到底如何?数据科学家不应该基于测试集上优异的模型性能指标而洋洋自得,这没有任何意义,顶多代表建模的技巧高超。 
 模型最终带来的收益是由模型输出、匹配模型输出的业务决策、业务决策实施过程中的资源配置、应用场景的价值大小等综合因素共同决定的。缺少任何一环都会使得模型的价值直线下降。 
 数据科学家需要积极主动地推进这些环节的相关工作,积极收集模型部署后的监测数据,在“建模—业务决策匹配—业务决策实施—效果监控—模型或决策改进—再部署—再监测”的闭环中积极发挥作用。最终得出的业务结果数据,才是数据科学家真正成就感的源泉。