Python和R是当今数据科学最常用的两种语言。 它们都是完全开源的产品,并且可以根据GNU公共许可证的要求完全免费使用和修改。但哪一个更好? 而且,更重要的是,你应该学习哪一个?两者都被广泛使用,并且是每个数据科学家手中的标准工具。答案可能让您感到惊讶 - 因为作为专业数据科学家,您应该准备好应对这两者。
Python有一些使用案例,R也是如此。使用它们的场景各不相同。 更常见的是环境以及客户或雇主的需求决定了Python和R之间的选择。许多事情在Python中都比较容易。 但R也在您的开发工具包中占有一席之地。
python
Python是Guido Van Rossum于1991年发布的通用编程语言。
从那时起,Python已在多种环境中用于多种用途,包括但不限于:
●Web开发(Django)
●Web微服务(Flask)
●适用于Python的Zappa无服务器框架
●TensorFlow(深度学习机器学习模型)
●Keras(简化TensorFlow开发的高级抽象)
Python闪耀的另一种情况是现有的数量众多的库,这些库很容易获得并且可以开源使用。 PyPI(Python Package Index的简称)存储库中提供了大量软件包,包含超过121k的软件包,可以在不同的抽象级别自动执行许多编程任务,使程序员的生活变得轻松。 PyPI的软件包中至少有6k专注于数据科学。 Python在可读性方面也很出色。与R相比,Python更容易阅读和理解。 Python比R更快,在某些情况下显着更快。
R
R是由统计学家为统计学家设计的统计学家编程语言。它起源于90年代的George Ross Ihaka和Robert Gentleman。 R擅长学术用途并掌握在统计学家手中。在统计学方面接受过正规培训的人,如统计学位,发现与R合作非常简单。 R软件包或库的存储库称为CRAN(Comprehensive R Archive Network),包含近12k软件包,其中大约一半用于数据科学。 R还擅长数据可视化。一次性分析数据通常更简单,更容易在R中表达。
此外,曾几何时,使用Python意味着将许多库链接在一起,其中一些库在功能修订和库更新后会变得不兼容。由于Anaconda,这已不再适用 - 见下文。在很短的时间内,深度学习严格来说就是一个Python功能 - 它在很短的时间内将机器学习世界的平衡转向了Python。然而,随着R中TensorFlow的Keras的发布,该因素也发生了变化,现在可以在R中使用深度学习模型。
所以答案是什么?你应该使用哪一个?
答案 - 两者兼而有之。
Continuum Analytics的Anaconda发行版完全改变了了机器学习现状。 Anaconda支持Python和机器学习所需的标准库 - NumPy,SciPy,Pandas,SymPy,Seaborn,Matplotlib - 以及完全支持R和一个名为R Studio的出色IDE。
对于深度学习,它支持TensorFlow,Theano,Caffe,Scikit-Learn和Torch。其最显着的特点之一是引入了Jupyter Notebook,这是一个集成平台,支持在同一环境中使用Python和R,同时保持所有开源。
另一个选项是Atom文本编辑器的Hydrogen插件。它允许您输入可在Jupyter Notebook中使用的任何代码,并在编辑器中返回结果。但是,它仍处于alpha状态,并在本地计算机上出现错误而崩溃。 Jupyter Lab应用程序允许在相同的环境中编辑Python和R笔记本,使用独立甚至远程内核的概念。因此,Python在机器学习方面表现优异,而R在统计学方面表现优异。但是你为什么要学习两者?
因为专业数据科学家需要非常详细地了解机器学习算法背后的统计数据和数学知识。
我们将研究两个SVM机器学习模型,一个通过Python代码,另一个通过R代码。这将为我们提供两种语言如何工作的良好画面。
R代码
该程序使用虹膜数据集来说明非线性SVM分类器的使用。 这段代码故意稍微复杂一些,因为它将ML技术应用于完整的内置数据集 - 虹膜数据集 - 用于说明传统ML技术容量的规范数据集之一。 这段代码还说明了R的内置统计函数的用法。
在执行下面的代码之前,您需要安装R包e1071并通过调用库(e1071)将其添加到编译列表中。 但不要担心 - 在R Studio中安装新软件包非常简单。
正如您所看到的,R代码在其图形和统计能力方面基本上比Python更强大。作为统计学家的统计学家的语言,如果你有统计学背景,使用R将是你在数据科学新职业生涯中最好的启动板。
结论
因此,当谈到在Python和R之间进行选择时,任何数据科学家都会知道他应该知道两者。
那么,在Python与R之间,总结一下:
两者都在数据科学中执行类似的任务,但是针对不同的领域进如果您是软件工程师,请选择Python。如果您是学术研究员,请选择R.
如果您是数据科学家 - 请同时选择两者。