Machine Learning/Data Mining
,我们需要了解数据,这意味着您需要学习Hadoop
,它在Java
中为MapReduce
实现(如果我错了请纠正我)。streaming api
支持其他语言(如python
)hadoop and Java combination
的招聘信息我观察到
Java
和 Python
(在我看来)是该领域使用最广泛的语言。
most popular language
在这个领域工作。factors
涉及决定一个人应该选择哪种语言/框架Java(because of hadoop implementation)
Python(because its easier and quicker to write)
这是一个非常开放的问题,我相信这些建议可能会对我和有同样疑问的人有所帮助。
不幸的是,在我看来,占统治地位的语言是 MATLAB……不幸的是,因为我既不喜欢也不使用这种语言,所以我更有可能使用 C++/Java 进行编程。但是我周围的数据挖掘者和机器学习者倾向于坚持使用 MATLAB...
编辑:我刚刚在 Wikipedia's page on R 中读到一个非常有趣的行:
根据 Rexer 在 2010 年的年度数据挖掘者调查,R 已成为 数据挖掘者使用的数据挖掘工具 (43%) 比其他任何工具都多。
我没有使用 Java 和 Hadoop 的经验,但我使用 Python 和 MATLAB 进行机器学习,现在我更经常使用 MATLAB。实际上,我的案例的重要因素如下:
有些观点也适用于 Python。但正如我提到的,我工作的社区在决定语言方面起着重要作用。
R 是数据挖掘(当然)和机器学习的优秀候选者。
(当然是概括。)
Java 和 Hadoop 在严重的大数据和/或扩展需求的背景下非常有意义。 Java 为您提供库和程序员大军。 Hadoop 为您提供相当轻松的分发和不断增长的将各种算法映射到框架的知识库。
Python 似乎有学术界的支持,特别是现在在专业实践中活跃和有影响力的应届毕业生。此外,如果你只是想尝试一些东西,像 Python 这样的富有表现力的动态语言显然会非常有用。
然后是R。(还有很多,但这是我的知识范围/g/)
我认为除了明显关注 R 带来的数据(因此还有一个数据极客社区也可以帮助科学部分),它是一个令人愉快的轻量级系统,在图书馆也是如此。
就是说,人们会认为 (~) 函数式语言(JVM 上的 Scala、Clojure;Haskell 等)非常适合处理数据和处理庞大的数据集。
我认为在这个领域最流行的组合是Java/Hadoop。当职位空缺还需要 python/perl/ruby 时,这通常意味着他们正在从那些脚本语言(通常是当时的主要语言)迁移到 java,因为他们从启动代码库迁移到企业。 同样在现实世界的数据挖掘应用程序中,python 经常用于原型设计、小型数据处理任务。
Python 越来越受欢迎,有很多库,对于原型设计非常有用。我发现由于 python 的许多版本及其对 C 库的依赖性很难部署。
R 也很流行,有很多库,专为数据科学而设计。然而,底层语言设计往往会使事情过于复杂。
就我个人而言,我更喜欢Clojure,因为它具有强大的数据操作支持并且可以与Java生态系统互操作。目前它的缺点是还没有太多的数据科学库!