搞机器学习,Python和R哪个更合适?
【编者按】如果你正想构建一个机器学习项目,但却纠结于如何选择编程语言,这篇文章将是你所需要的。这篇文章不仅帮助你理解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
相关文章:

Java安装方法
第1章 Java简介及开发环境搭建 实验1 JDK的下载、安装与配置 【实验目的】 (1)熟悉JDK工具包的下载及安装过程。 (2)掌握JAVA_HOME、CLASSPATH及Path的设置内容。 (3)掌握Java程序运行原理及Javac、Java命…

Hash函数的安全性
我们为了保证消息的完整性,引进了散列函数,那么散列函数会对安全正造成什么影响呢?这是需要好好研究一番的问题。 三个概念: 1.如果y<>x,且h(x)h(y),则…

一键安装python3环境
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/04/15/python3_in_a_box/ 一键安装python3环境 由于现在逐步转移到 python3 进行开发,但是很多机器并没有预装 python3 环境,所以需要安装。 所以分享一个我常用的,…
认知智能再突破,阿里 18 篇论文入选 AI 顶会 KDD
作者 | 马超责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)近日,国际知识发现与数据挖掘协会KDD在官网(https://www.kdd.org/kdd2020)公布其2020年度的论文收录结果,笔者看到阿里共有18篇论文入选&…

python采集cpu信息
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/20/analyze_cpu/ python脚本采集cpu 经常要做一些 linux 系统上的性能分析或者采集 cpu/mem/bandwidth 上报到监控系统。 分享一个我平常常用到的 cpu 采集脚本,原理是分析 /proc/stat…

Pretty Login便携版:Windows 7登录界面修改器
Pretty Login是由chnable开发的一个美化小工具,用来辅助修改Widnows 7登陆界面的背景图片,除此之外,它也能定制欢迎界面上的文本、按钮样式,如设置阴影、半透明效果。 由于Windows 7限制登录背景图片的大小不超过255KB,…
来了来了!趋势预测算法大PK!
作者 | 王哲责编 | Carol头图 | CSDN 付费下载自视觉中国趋势预测在很多应用场景中都会起到至关重要的作用,比如淘宝商家会考虑库存量应该保持在多少才能够满足客户需求,商场希望得知假期会迎来多大的客流量以安排系列活动,机场想要预测五一黄…

hdu 5713(状态压缩DP)
要进行两次dp, 第一个,dp[i],1<i<(1<<n) 其中用i的二进制形式表示已选择的点。 dp[i] 用来保存i中的点构成一个连通块,边集多少种可能。 转移方程: save[0] 1;//这里用save[i]表示dp[i]for(int i1;i<(1<<n)…

nginx特定的 404页面利于seo
要求:访问http://www.qq.com/123 url保持不变 显示的结果为指定的404页面curl -I http://www.qq.com/123 返回的状态码为404 准备一 404.php页面在最底部加上:<?phpheader(HTTP/1.1 404 Not Found);header(Status: 404 Not Found);?>然后ngin…

python采集bandwidth信息
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/ python脚本采集bandwidth 经常要做一些 linux 系统上的性能分析或者采集 cpu/mem/bandwidth 上报到监控系统。 分享一个我平常常用到的 bandwidth 采集脚本,原理…
零基础搭建个性化精准营销 AI 应用,这次手把手教你!
百万学AI系列AI 应用开发大师课已经直播两期了,在前两期的内容中,大家在入门级任务《猫狗分类器》中上手 TensorFlow 开发,通过离线 SDK 在 Android 手机中完成人脸识别应用的部署。在这两个任务中,能成功安装开发环境,…

C++数据类型简析
C语言的基本数据类型有如下四种: 整型,说明符为int;字符型,说明符为char;浮点型(又称实型),说明符为float(单精度),double(双精度&…
浅谈几种区块链网络攻击以及防御方案之51#37攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生到现在,比特币(网络)经历过大大小小非常多次的攻击,尤其在比特币诞生之初的…
全球Python调查报告:Python 2正在消亡,PyCharm比VS Code更受欢迎
作者 | 唐小引题图 | 自东方 IC出品 | AI科技大本营(ID:rgznai100)一年一度的 Python 开发者调查报告终于发布了。该报告由 Python 软件基金会和 JetBrains 联合发起,已经持续三年,并且参与调查的开发者人数正在逐年上…

中兴V880使用手记之五——刷入recovery
Recovery是安卓系统的一个特殊工作模式,也就是一个刷机的工程界面,给安卓手机刷入Recovery相当于给系统安装了一个dos界面,可以在未开机的状态下,实现系统更新、还原出厂设置、清除手机缓存等。通过一些第三方工具,可以…

windows 系统常用操作
1、所有端口使用情况 netstat -ano 2、查询xxxx端口pid netstat -aon|findstr "xxxx" 3、根据端口Pid查详情 tasklist|findstr "pkd" 4、根据进程pid kill 进程 taskkill /pid pid -f 转载于:https://www.cnblogs.com/vitre/p/5549344.html
浅谈几种区块链网络攻击以及防御方案之日蚀攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/12/network_attack_of_blockchain_eclipse_attack/ 写在前面的话 自比特币诞生到现在,比特币(网络)经历过大大小小非常多次的攻击,尤其在比特币诞生之…
微服务的理想与现实
来源 | 京东智联云开发者随着云原生微服务的日益火热,很多人都开始对微服务的相关知识内容感兴趣。本篇内容,旨在扫盲(意思是小白可入),希望能对大家有帮助。如有问题,欢迎大家一起讨论,共同学习…

感恩心成就了车建新和红星美凯龙
前几天参加了红星美凯龙成立25周年庆典活动,庆典活动非常的隆重,庆典之前红地毯上星光熠熠,红星美凯龙掌舵人车建新等多位高管、品牌代言人大小S、刘谦、古巨基、萧亚轩、胡一虎等演艺群星、马未都、马艳丽、包小柏、王潮歌、殷智贤等不同领域…

第二阶段团队项目冲刺站立会议(九)
昨天做了什么: 已经简单实现我的后续显示问题。 今天准备做什么: 美观上的东西来不及做了估计,我要整合到项目的实现上去。 遇到的问题: 项目问题大体上和竞赛一致,但也有不一样的地方。转载于:https://www.cnblogs.co…
浅谈几种区块链网络攻击以及防御方案之女巫攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特币诞生到现在,比特币(网络)经历过大大小小非常多次的攻击,尤其在比特币诞生之初…

INODE上网IP地址刷新超时处理
IP地址刷新超时2011-06-07 09:19:08 连接网络...2011-06-07 09:19:08 开始进行身份验证... [wangliyafaguibu]2011-06-07 09:19:09 正在上传用户密码...2011-06-07 09:19:10 您的身份验证成功2011-06-07 09:19:10 自动获取IP地址...2011-06-07 09:19:11 IP地址刷新超时2011-06-…
让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...
导语:深度学习领域经典的 Adam 算法在大规模并行训练的情况下会导致模型性能损失。为了解决这一问题,微软亚洲研究院采用 BMUF 框架对 Adam 算法进行了并行化,并在微软大规模 OCR 和语音产品数据集上进行了测试,使其在并行训练中几…

Spring AOP AspectJ Pointcut Expressions With Examples--转
原文地址:http://howtodoinjava.com/spring/spring-aop/writing-spring-aop-aspectj-pointcut-expressions-with-examples/ 1) Matching Method Signature Patterns The most typical pointcut expressions are used to match a number of methods by their signatu…
限免!百名AI大咖,20大技术和行业论坛,不可错过的开发者嘉年华
根据《2020科技趋势报告》的预测,AI将引发第三次计算浪潮,也是重塑世界最大的动因之一。而在全球人工智能技术的赛道上,中国无疑是领先者,到2030中国将成为全球主要的人工智能创新中心。在这样的大环境下,如何抓住机遇…
浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币诞生到现在,比特币(网络)经历过大大小小非常多次的攻击,尤其在比特币诞生之初…

C++中#include的工作原理
大多数人可能对“#include”比较熟悉,因为我们写C/C程序的时候都会写的字符串之一,但是它是具体怎么工作的?或者它的原理是什么呢? 可能不太熟悉,也有可能没有去关心过。我们只关心程序能否正确运行,或者程…

浅谈几种区块链网络攻击以及防御方案之其它网络攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特币诞生到现在,比特币(网络)经历过大大小小非常多次的攻击,尤其在比特币诞生之初…
基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了
作者 | 站长 pursueYfuture来源 | AI专栏(ID: pursue-Y-future)计算机视觉的一大研究热点是人体姿态估计,还有很多问题急需解决,比如遮挡,交互等等。在最近的CVPR2020里边也有很多这方面的工作。本文站长主要是想谈谈基…

怎么让百度快速重新收录
每天更新网站和做外链让百度重新收录的快速方法很多人都比较头疼让百度如何重新来收录你站点,这里为大家介绍一下我的经验;大家都知道做网络推广,特别是企业站推广,如果能在相关的关键字在搜索引擎里有个好的名次,肯定能给企业增长…