为什么互联网公司更喜欢 Java/Python 做数据科学家的工作?

数据挖掘 初学者 工具 职业 参考请求
2021-10-13 20:14:34

我在数据科学家的职位描述中多次看到要求有 Python/Java 经验而无视 R。以下是我收到的一封个人电子邮件,来自我通过 LinkedIn 申请的一家公司的首席数据科学家。

X,感谢您的联系和表达兴趣。你确实有很好的分析技能。然而,我们所有的数据科学家都必须具备良好的 Java/Python 编程技能,因为我们是一个互联网/移动组织,我们所做的一切都是在线的。

虽然我尊重首席数据科学家的决定,但我无法清楚地了解 Python 可以完成哪些 R 无法完成的任务。有人可以详细说明吗?我实际上很想学习 Python/Java,只要我能了解更多细节。

编辑:我在 Quora 上发现了一个有趣的讨论。 为什么 Python 是数据科学家的首选语言?

Edit2:Udacity 关于机器学习语言和库的博客

4个回答

因此,您可以与代码库的其余部分集成。您的公司似乎混合使用了 Java 和 python。如果网站的某个小角落需要机器学习,你会怎么做?将数据与数据库或缓存一起传递,放到 R 中,等等?为什么不直接用同一种语言来做呢?它更快、更清洁、更易于维护。

知道任何仅在 R 上运行的在线公司吗?我也不...

综上所述,Java 是我从事数据科学工作的最后一种语言。

可能有很多原因,比如:

  1. 劳动力灵活性:一名 Java / Python 程序员可以轻松地转移到其他任务或项目中。

  2. 候选人可用性:有大量的 Java/Python 程序员。您不想引入一种新的编程语言,以便以后发现没有合格的工人或者他们太贵了。

  3. 集成和 ETL:有时获取质量正确的数据是项目中最难的部分。因此,使用与其他系统相同的语言是很自然的。

  4. 业务模型定义:大多数业务规则和业务模型已经用这种语言编写。

  5. 只是保持简单。跟上这些技术已经够难的了。多样化的语言基础可能是混乱的。R 用于此,Ruby 用于此,Scala、Clojure、F#、Swift、Dart ......他们可能需要不同的服务器、不同的路径、管理地狱。所有人都有自己的带有工具和插件的 IDE(并不总是免费的)。查看 Bob 大叔关于语言选择新技术的一些观点

因此,即使您在特定任务中使用 R 有 5% 到 15% 的生产力优势,他们也可能更喜欢能够完成工作的工具,即使不是以最有效的方式。

一般来说,对于纯粹的数据科学和统计练习,R 提供了最好和最快的(特别是如果使用data.table包)工具和方法,否则在 Python 中实现会更重(我假设 Python 都是指 Pandas,尽管)。事实上,大多数数据科学家确实使用 R 来执行他们的模型和计算,或者只是为了查看数据的行为方式。

练习完成后,就可以将其提供给其他必须使用它的人(即部署);为此,通常首选使用 Python 提交代码,主要有两个原因:

  1. 大多数架构都是用 Python 编写的或者是 Python 友好的,因此更容易实现用该语言原生编写的模型。
  2. R 语法和文法极其复杂。除了其他任何东西,我自己都非常喜欢 R,但不得不承认,它的语法并不是很简单,而且学习曲线非常好。

综上所述,如果方法、库和包可用(在 Python 中大部分都可用,所以完全没有问题),仍然可以轻松地将 R 代码翻译成任何其他语言。大量的基础设施和数据库支持底层 R 代码,因此可移植性并不是一个真正的问题,特别是如果只需要提交计算结果(在此范围内,没有人真正看到底层代码)。

Java 对纯数据科学本身几乎没有用处(尽管据我所知,斯坦福大学有一组用 Java 编写的机器学习 NLP 库——但请检查)。需要它的唯一原因是公司的其他人在很大程度上使用它,并且他们不想用新的东西代替它。

我见过不少公司使用“数据科学家”这一头衔来担任“数据工程师”类型的角色。特别是在大数据领域。

如果公司使用 Hadoop 或 Spark 等分布式框架进行分析,那么 Java 或 Python(或者可能是 Scala)将是最有意义的语言。