您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 大数据 > 正文

为什么你不应该成为一名数据科学通才

发表于:2018-11-20 作者:大数据文摘 来源:大数据文摘

数据科学

大数据文摘出品

编译:周家乐、狗小白、蒋宝尚

数据科学家似乎个个都是全才,他们知识面很广,即写的了代码,又分析的了业务,没事还能整个数学模型调调参数。

似乎,数据科学家涉及的领域越广,越能突出数据科学这份职业的价值。

但是,情况恰恰相反!

有着丰富的数据科学经验的SharpestMinds联合创始人Jeremie Harris告诉你,千万不要成为一个数据科学通才!

以下是他以第一人称的论述,enjoy

我在公司帮新手规划数据科学职业发展的时候,通常首先建议他们先去考虑一下自己想成为什么样的数据科学家,而不是直接推荐一个新的库或工具,或者一些写简历的技巧给他们。

数据科学

这个问题之所以如此重要,是因为数据科学涉及太多方面,以至于很难被一个人完全掌握。所以,对公司而言,与其雇一个什么都懂一点却不精通的人,不如雇佣那些专才。

你可以试想一下你是一家计划雇用数据科学家的公司。在你的脑海中几乎存在一个需要寻求帮助才能解决的具体的问题,该问题需要一些相当专业的技术知识和项目经验。例如,一些公司将简单模型应用于大型数据集,一些公司将复杂模型应用于小型数据集,一些公司需要动态地训练他们的模型,还有一些公司根本不使用传统的模型。

解决上面例子中的每一个问题所需要的技能组合完全不同,而让人感到特别奇怪的是,每一个有志于数据科学的人得到的建议往往是一样的:“学习如何使用Python,构建一些分类/回归/聚类的项目。”

其实,出现这一现象的原因是包括我在内的圈内人造成的。因为在闲聊、博客帖子中,我们把过多的东西放到“数据科学”中。

为生产建一个强健的数据通道?这是一个“数据科学问题”。创造一种新型的神经网络?这是一个“数据科学问题”。

这往往导致有志于数据科学的人们失去对特定问题的深入研究,从而成为泛泛之辈。要知道,人才市场上已经满是所谓的通才,他们很难再得到市场的青睐或取得突破。

但是,如果你自己不清楚都有哪类常见问题需要你去深入研究,那你就很难避免流于平庸。

我们把圈内出现的问题归结为以下五类:

1. 数据工程师

职位描述:处理大量数据的公司,并管理数据通道。这意味着,当需要时,你要能确保有效地从数据源收集和检索数据,并进行清理和预处理。

为什么它很重要:如果你只处理过相对小的(<5Gb)保存为.csv或.txt文件的数据集,那么你可能很难理解为什么会有一些人的全职工作是构建和维护数据管道。

这里有几个原因:

  • 一个50Gb的数据集对计算机的RAM来说太大了,所以你通常需要其他方法将其输入到你的模型中。
  • 处理这么大规模的数据需要花费大量时间,并且经常需要冗余存储。管理数据的存储也需要专门的技术诀窍。

要求:你将使用的技术包括Apache Spark、Hadoop和/或Hive,以及Kafka。你很可能还需要有一个扎实的SQL基础。

你要处理的问题听起来像:

“我如何构建一个能够每分钟处理10000个请求的数据管道?”

“如何清理数据集而不用将其全部加载到RAM中?”

2. 数据分析员

数据分析

职位描述:将数据转换成可指导业务发展的商业洞察力。你会是技术团队和商业战略、销售或营销团队的桥梁。数据可视化将成为你日常工作的重要组成部分。

为什么它很重要:纯技术人员通常很难理解为什么数据分析员如此重要,但事实是他们就是很重要。这些人需要将经过训练和测试的模型和大量用户数据转换为让人易于理解的形式,以便根据数据分析结论设计业务策略。数据分析员帮助确保数据科学团队不会浪费时间在不能提供业务价值的问题上面。

要求:你将使用的技术包括Python、SQL、Tableau和Excel。你还需要成为一个好的沟通者。

你要处理的问题听起来像:

“什么驱动了用户的增长?”

“我们如何向管理层解释,最近用户费用的增加会减少客户?”

3. 数据科学家

职位描述:清理和探索数据集,并做出有商业价值的预测。日常工作包括训练和优化模型,并将它们部署到生产中。

为什么它很重要:当你有一大堆数据,以至于人类无法解析,同时这些数据也很珍贵以至于不能忽略它们时,你需要通过一些办法从中提取一些可被接受的见解。这是数据科学家的基本工作:将数据转换成可被理解的结论。

要求:你将使用的技术包括Python、scikit-learn、Pandas、SQL,可能还有Flask、Spark和/或TensorFlow/PyTorch。一些数据科学职位纯粹是技术性的,但是大多数职位还需要你具有商业头脑,这样你就不会老想着去解决没有人需要解决的问题。

你要处理的问题听起来像:

“我们到底有多少种不同类型的用户?”

“我们能建立一个模型来预测哪些产品能卖给哪些用户吗?”

4. 机器学习工程师

职位描述:建立、优化和部署机器学习模型到生产中。通常需要把机器学习模型当作API或组件来处理,把它们嵌入到全栈应用程序或硬件中,但是你也可能会被要求自行设计模型。

要求:使用的技术包括Python、JavaScript、scikit-learn、TensorFlow / PyTorch(和/或企业级深度学习框架)和SQL或MongoDB(通常用作app数据库)。

你要处理的问题听起来像:

“如何将这种Keras模型集成到我们的Javascript应用程序中?”

“如何减少推荐系统的预测时间和预测成本?”

5. 机器学习研究员

职位描述:寻找新的方法来解决数据科学和深度学习中的挑战性问题。没有现成的解决方案给你,需要自己去制定。

要求:你将使用的技术包括Python、TensorFlow/PyTorch和SQL。

你要处理的问题听起来像:

“我如何才能提高我们模型的准确性,使之更接近最新水平?”

“自定义优化程序有助于减少训练时间吗?”

这里列出的五种工作描述并不是在所有情况下都是独立的。例如,在初创公司的早期,数据科学家可能还必须是数据工程师和数据分析师。但是,大多数工作都可以被划分为这几类工作中的一种,而且公司规模越大,数据科学工作的划分越贴近这里所列出的类别。

总而言之,要记住的是,为了得到聘用,你最好能培养一个更加专注的技能集:如果你只是想成为一名数据分析员,不要着急去学习TensorFlow;如果你是想成为一名机器学习研究人员,没必要先去学习Pyspark。

相反,你需要考虑你想帮助公司创造什么样的价值,并且让自己善于创造这种价值。相对于任何其它方式,这是得到offer最好的方式。

相关报道:

https://towardsdatascience.com/why-you-shouldnt-be-a-data-science-generalist-f69ea37cdd2c