我刚刚开始为学术目的开发机器学习应用程序。我目前正在使用R并在其中训练自己。但是,在很多地方,我看到人们使用Python。
人们在学术界和工业界使用什么,有什么建议?
我刚刚开始为学术目的开发机器学习应用程序。我目前正在使用R并在其中训练自己。但是,在很多地方,我看到人们使用Python。
人们在学术界和工业界使用什么,有什么建议?
在选择R或Python时需要考虑的一些真正重要的区别:
因此,两种语言都同样出色。因此,根据您的领域和工作地点,您必须明智地选择正确的语言。技术界通常更喜欢使用单一语言。业务用户(营销分析、零售分析)通常使用 R 等统计编程语言,因为他们经常进行快速原型设计和构建可视化(在 R 中比 Python 更快)。
没有什么像“python 更好”或“R 比 x 好得多”。
我所知道的唯一事实是,在这个行业中,有很多人坚持使用 Python,因为那是他们在大学里学到的。python 社区非常活跃,有一些很棒的 ML 和数据挖掘等框架。
但老实说,如果你有一个优秀的 c 程序员,他可以像人们在 python 或 r 中做的一样,如果你有一个优秀的 java 程序员,他也可以(接近)用 java 做所有事情。
因此,请坚持使用您熟悉的语言。
一些额外的想法。
编程语言“本身”只是一种工具。所有语言都旨在使某些类型的构造比其他构造更容易构建。与其他语言相比,编程语言的知识和掌握比该语言的功能更重要和有效。
据我所知,这个问题有两个方面。第一个维度是快速探索、构建概念或模型证明的能力,最终拥有足够的工具来研究正在发生的事情(如统计测试、图形、测量工具等)。研究人员和数据科学家通常更喜欢这种活动(我总是想知道这意味着什么,但我用这个术语来定义它的松散定义)。他们倾向于依赖知名且经过验证的工具,这些工具可用于证明或论证。
第二个维度是扩展、改变、改进甚至创建工具、算法或模型的能力。为了实现这一点,您需要一种适当的编程语言。几乎所有这些都是相同的。如果你为一家公司工作,那么你在很大程度上依赖于公司的基础设施、内部文化,你的选择会大大减少。此外,当您想要实现用于生产用途的算法时,您必须信任该实现。并且用您不掌握的另一种语言实现对您没有太大帮助。
对于第一种类型的活动,我倾向于支持 R 生态系统。你有一个很棒的社区,大量的工具,证明这些工具可以按预期工作。此外,您可以考虑 Python、Octave(仅举几例),它们是可靠的候选者。
对于第二个任务,你必须先考虑你真正想要什么。如果您想要强大的生产就绪工具,那么 C/C++、Java、C# 是很好的选择。我认为 Python 是这个类别中的第二个公民,与 Scala 和朋友一起。我不想开始一场火焰战争,这只是我的意见。但是作为一名开发人员超过 17 年之后,我倾向于更喜欢严格的合同和我的知识,而不是自由地做你可能想到的任何事情(就像很多动态语言都会发生的那样)。
就个人而言,我想尽可能多地学习。我决定我必须选择困难的方式,这意味着我自己从头开始实现所有东西。我使用 R 作为模型和灵感。它在图书馆里有很多宝藏,也有很多经验提炼出来。然而,R 作为一种编程语言对我来说是一场噩梦。所以我决定使用 Java,并且不使用额外的库。那只是因为我的经验,没有别的。
如果你有时间,你能做的最好的事情就是花一些时间处理所有这些事情。通过这种方式,您将为自己赢得适合您的最佳答案。Dijkstra 曾经说过,工具会影响你的思维方式,因此最好先了解你的工具,然后再让它们模拟你的思维方式。您可以在他的著名论文《谦虚的程序员》中了解更多相关信息
我会补充其他人到目前为止所说的话。没有一种语言比另一种语言更好的单一答案。
话虽如此,R 有一个更好的数据探索和学习社区。它具有广泛的可视化功能。另一方面,自从引入 pandas 以来,Python 在数据处理方面已经变得更好。与 R 相比(R 是一种低级语言),Python 的学习和开发时间要少得多。
我认为这最终归结为你所处的生态系统和个人喜好。有关更多详细信息,您可以在此处查看此比较。