【编者按】如果你正想构建一个机器学习项目,但却纠结于如何选择编程语言,这篇文章将是你所需要的。这篇文章不仅帮助你理解Python和R这两种语言的区别,还有助于你了解各个语言多方面的优势。

作者 | Manav Jain

译者 | Joe,编辑 | 夕颜

来源 | CSDN(ID:CSDNnews)

R和Python有着相同的编程特性,同时都是数据科学家常用的工具。在机器学习领域,大约有69%的开发者使用Python,另外24%的开发者使用R。这两种语言都是开源的,因此都是免费的。但是,Python是被设计成一种广泛适用的编程语言,但R是被用于统计分析。

人工智能和数学分析是开源工具创新的两大热门领域。Python和R都营造了很好的开源生态环境,这有利各个水平的数据科学家更有效地完成科学工作。

机器学习和数据分析之间的区别随着时间的推移都是相对变化,但是,其主要的区别是机器学习偏向模型解释,而数据分析侧重解释和事实推测。在不断增长的质疑声中,Python在机器学习领域获得了一席之地。R则作为一门用于事实推断和统计推断的语言在数据分析领域享有盛誉。

这并不意味着必须把这两个语言划分到不同的领域 ——python也足以被用来作为数据分析的工具,R也具备充分的适应性可以完成机器学习中的重要工作。这两种语言各自有大量的库试图去完成对方的功能。Python具有可以提升其显著推断能力的库,R也有提升其预测精度的库。

接下来的文章将进一步讨论两种语言的细节之处,这将非常有助于你选择最适合你当前项目的编程语言。

Python

Python诞生于上世纪80年代,并且在Google内部框架中承担重要角色。Python有着饱含激情的设计者团队,同时现在它又被广泛应用于Youtube、Instagram、Quora、和Dropbox。Python已经在IT领域获得了广泛的应用,同时其在协调内部团队工作出色的表现也获得了认可。因此,如果你需要一个多功能的编程语言,同时有设计者维护的强大生态环境,Python将是你的不二之选。

Python的优势:

  • 通用编程语言 —— Python是一个更好的选择,如果你的企业不需要统计方面的功能。比如构建一个网站。

  • 平稳的学习进度 —— Python是一个上手学习比较容易的编程语言。

  • 大量常用库 —— Python号称有着数不尽的库可以用来处理数据。比如Scikit-learn就包含了用于数据挖掘和分析的工具。另外Pandas设计团队提供的无法比拟的结构和信息处理功能可以显著提升开发效率。如果你所在的团队特别要求使用R中某个独特的功能,那么RPy2是个合适的选择。

  • 更好的整合 —— 通常,在任何设计场景下,Python是优于R的。无论设计者是否可能错误地使用底层语言比如C,C++,或者java,Python wrapper都可以更好地把各个部分整合在一起。另外,数据研究者使用基于python构建完成后续的工作并不难。

  • 促进生产效率 —— Python语法非常容易理解,并且和其它编程语言一样,反正跟R不相伯仲。这保证了开发团队的高效率生产。

Python的劣势:

通用仓库的缺失,某些R库没有对应的python包。

由于动态组合,在某些情况下,它会搜寻某个功能并陷入这个缺陷,伴随着各种各样数据错误的任务。


R

R是由统计学家为数据分析者所创造的,任何一位工程师看一下它的语法就能明白。如果你需要提升细节的理解和创造性地开发,那么R是一个正确的选择,因为R包含的科学计算与基于统计分析的机器学习相关。

如果你的工作需要更深入的理解,这时R是一个非常不错的选择。它可以用于不断提升你对工作的理解,只需要一次调用数据库。比如你想要通过把段落内容拆分成单词或者短语来分析一个语料库,从而理解这些例子,那么R就是你最好的选择。

R的优势

  • 适用于数据分析 —— 如果数据检验或数据表示对你们企业非常重要,那么R将会是你最好的选择,因为用它可以快速实现原型开发设计,并和数据集一起可以构建人工智能/机器学习模型。

  • 大量实用库和工具 ——和python一样,R包含大量库可以帮助使用机器学习的企业。比如,Caret不同寻常的功能使其非常高效,这也提升了R在人工智能方面的功能。还在不断开发的数据分析库给R使用者带来了巨大的优势。这些数据分析库不仅全面,而且专注于模型认证和信息表示。

  • 适用于探索性任务 —— 如果你在项目的前期阶段需要在模型验证方面进行一些探索性的工作,那么R会让工作变得简单,因为工程师们只需要写几行代码就可以了。

R的劣势

  • 学习难度大,并且容易写出错误的代码。弱类型是危险的,函数都有着返回非期望类型对象的恶习。

  • 相较于其它编程语言的独特之处:向量的索引是从1开始,而不是0。

  • 解决某些问题的语法并不是那么明显。由于R有着大量的库,一些并不常用的库并没有完善的文档说明。

结论

对于机器学习,Python 和R都有它们各自的优势,因为它们都有大量的库。

如果你能够很好地掌握这两种语言,你就能够成为集其大成者,因为其中一个语言可以完成的大多数功能,另一个语言也可以完成。

此外,你可以使用Python作为前期阶段的数据处理,之后再把这些信息送入R进行分析处理。R可以提供全面的、更优的数据分析方案。

你可以把R当作是Python的一个库,或者把Python当作是R的一个用于预处理的库。掌握了python和R各自的优缺点,现在你可以更好地选择一个最适合于你目前项目的编程语言。

原文链接:

https://towardsdatascience.com/python-vs-r-which-is-good-for-machine-learning-ecfb87c7f8ca

作者简介:Manav Jain,技术顾问与博客专家。

推荐阅读

  • 量子计算与AI“双拳”出击,他们锁定38种潜在抗疫药物

  • 绝悟之后再超神,腾讯30篇论文入选AI顶会ACL

  • 微信提出推荐中的深度反馈网络,在“看一看”数据集上达到SOTA

  • 平安科技王健宗:所有 AI 前沿技术,都可以在联邦学习中大展身手

  • 2 年 6 个月 11 天,外包到阿里的修仙之路 | 原力计划

  • 在 520 这天,竟然有人把 Docker讲清楚了?

  • 斗地主吗?能学区块链那种! | 原力计划

  • 你点的每个“在看”,我都认真当成了AI

搞机器学习,Python和R哪个更合适?相关推荐

  1. 搞机器学习,Python 和 R 哪个更合适?

    [编者按]如果你正想构建一个机器学习项目,但却纠结于如何选择编程语言,这篇文章将是你所需要的. 这篇文章不仅帮助你理解Python和R这两种语言的区别,还有助于你了解各个语言多方面的优势.那就不再浪费 ...

  2. Python和R哪个更适合机器学习?两者结合,双倍快乐

    ▼ 更多精彩推荐,请关注我们 ▼ 大数据文摘出品 来源:medium 编译:张大笔茹.笪洁琼 如果你打算准备完成一个机器学习项目,比较难选择哪种编程语言,那么你要好好看这篇文章! 这篇文章不仅可以带你 ...

  3. 比python好_这就是为什么Python比R更好的原因

    目录 介绍 这就是为什么 摘要 介绍 虽然说Python比R更好对我而言是正确的,但对您来说可能并非如此. 当然,您可能会因为各种原因认为R比Python更有用. 即使您反对我的声明,我仍然希望开始进 ...

  4. r语言和python-R VS Python:R语言是否真的过时了?

    ​自从CDA数据分析师开设了Level1 业务数据分析师 R专题之后,很多学生对此产生了疑惑.特别是在挖掘建模工具的选择上,甚至出现了选择恐惧症.在此,摘抄了 浩彬老撕 的文章,以及之前零零散散看的一 ...

  5. Python超过R,成为数据科学和机器学习的首选语言!

    | 全文1765共字,建议阅读时长3分钟 | 近期,数据挖掘资讯网站KDnuggets开展了一项调查,问题是"2016年和2017年,在数据分析.数据科学和机器学习工作中,你使用 ...

  6. 机器学习算法清单!附Python和R代码

    来源:数据与算法之美 本文约6000字,建议阅读8分钟. 通过本文为大家介绍了3种机器学习算法方式以及10种机器学习算法的清单,学起来吧~ 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人 ...

  7. 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)

    10 种机器学习算法的要点(附 Python 和 R 代码)(转载) from:https://zhuanlan.zhihu.com/p/25273698 前言 谷歌董事长施密特曾说过:虽然谷歌的无人 ...

  8. 机器学习算法一览(附python和R代码)

     机器学习算法一览(附python和R代码) 来源:数据观 时间:2016-04-19 15:20:43 作者:大数据文摘 "谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能 ...

  9. 10 种机器学习算法的要点(附 Python 和 R 代码)

    前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大 ...

最新文章

  1. win下配置的ES中的数据在哪里可以看到?三种方式你看那种更加高大上!!!(win_Elasticsearch)
  2. Java中Map的使用
  3. 数据字典在sga的哪一个组件中缓存_非功能性约束之性能(1)-性能银弹:缓存...
  4. 关于glusterfs-3.0.4中AFR修复的一个bug
  5. 设计师必备的资源网站和灵感作品社区分享!
  6. Evolution Game DP
  7. Amdahl定律以及该定律在多核时代的影响
  8. MySQL 5.5 到MySQL 5.6半同步复制(SSL)
  9. 局域网ip冲突检测工具_“网络工程师培训”基础教程五:局域网
  10. 完美二叉树, 完全二叉树和完满二叉树
  11. PHP icbc工商银行开放平台聚合支付,二维码扫码支付API云收呗对接步骤,稳步发展
  12. 写给立志进入网络行业的朋友的一些忠告
  13. VLC编译错误难解 3 fatal error: features.h: 没有那个文件或目录
  14. python代码运行速度有点慢 ? 教你使用多线程速度飞升
  15. 毕设新思路附源码 | 微医平台项目详细步骤
  16. 广东计算机职业学校排名2015年,广东职业高中学校排名
  17. 2019 DMV自动驾驶报告:百度第一,中国公司大秀肌肉
  18. AI和5G赋能智慧校园顶层设计方案AI和5G赋能智慧校园大脑建设方案
  19. gnuplot 入门教程
  20. 无线传感器网络复习(武昌首义学院)

热门文章

  1. mysqldump和xtrabackup备份原理实现说明
  2. HttpApplication事件ASP.NET页面周期
  3. 『干货』分享你最喜欢的技巧和提示(Xcode,objective-c,swift,c...等等)
  4. 云计算设计模式(十)——守门员模式
  5. 简短的几句js实现css压缩和反压缩功能
  6. MSSQL数据库统计所有表的记录数
  7. Lucene.net: the main concepts
  8. OpenCV录制视频
  9. discard connection丢失数据_python kafka 生产者发送数据的三种方式
  10. Python中的三目运算符------if else 同行