楼主: iRolly
1686 9

[网帖精选] 机器学习编程语言之争,Python夺魁 [推广有奖]

  • 0关注
  • 81粉丝

编辑管理员

院士

25%

还不是VIP/贵宾

-

威望
3
论坛币
26606 个
通用积分
9215.5076
学术水平
957 点
热心指数
1132 点
信用等级
955 点
经验
81505 点
帖子
912
精华
17
在线时间
959 小时
注册时间
2015-5-15
最后登录
2023-11-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
人大经济论坛经管爱问微信好号“jgasker”好文共享与推荐,实时答疑服务,欢迎关注!



随着科技的发展,拥有高容量、高速度和多样性的大数据已经成为当今时代的主题词。数据科学领域中所采用的机器学习编程语言大相径庭。究竟哪种语言最适合机器学习成为争论不休的话题。近日,密西根州立大学的博士生Sebastian Raschka再次发起了 机器学习编程语言之争 ,分析了自己选择Python的原因。


目前,机器学习牵涉的编程语言十分多样,包括了MATLAB、Julia、R、Perl、Python、Ruby等等。首先,Raschka定义 了语言好坏的原则:一门好的语言应该使得编写、调试和执行代码的总时间最短。然后,他花大篇幅讲述了一个简单的道理——没有一门语言是对所有情况、所有人 都十分适合的。


Roberto Waltman:“在这种唯一正确的方式下,面向对象的Spaghetti code就是Lasagna code。”


针对具体的应用场景以及参与项目的人员,开发团队或个人要对任务需求进行评估,再结合人员对于各个语言的熟悉程度和语言生态环境的情况等等,作出选择。接下来,Raschka开始正式点评各个语言相对与Python在机器学习时的优缺点。


表现平平的MATLAB


作为机器学习、模式识别等方面经常使用的工具,MATLAB被放在了第一个分析。Raschka认为,MATLAB在实现机器学习算法时要比Python或者 NumPy 更加自然。很多高校也在计算机科学相关的课程中教授MATLAB语言。然而,MATLAB也存在很多的缺点:价格昂贵、非开源、性能表现平平、语法不符合程序员的习惯等。例如,MATLAB中矩阵乘积运算操作为 X.dot(Y) ,而Python为 X@W ,更加简洁、明了。



各种语言相对于C的测试性能——C的性能为1.0,越小越好


从上图可以看出,MATLAB的性能比Python、Go、Java等语言要差很多。Raschka也提到,上图中Python的性能也表现不好。但是,现在性能强劲的GPU为Python提供了强大的后盾。在2010年的时候,Python中的 Theano库 在CPU上运行时,其速度是NumPy的1.8倍。而Theano在GPU上运行时,其速度就是NumPy的11倍。因此,在目前更高性能的GPU的帮助下,Python性能已经有了更大的改进。


貌似很强大的Julia


作为一门新型的语言,Julia在设计之处就充分借鉴了C/Ruby/Python等语言的经验,试图重新融合众家之长,为科学计算提供一个有力的工具。Raschka充分认可了该语言。然而,对于其未来Julia是否会流行,Raschka持保留态度。


Bjarne Stroustrup:世界上只有两种语言——大家一直在抱怨的和无人问津的。


Raschka认为一个语言是否有用又很大程度上取决于其是否流行。只有被广大编程人员所熟知的编程语言,相关的库才会更多,遇到问题时也能够方便的找到答案,且易于团队合作和代码分享。语言本身也会随着社区的关注不断得以改善。在流行度上,Julia并没有什么优势。


R语言本身无错


接下来,Raschka又提到了R语言。其实,Raschka之前使用过R语言,而且还专门撰写了一部有关 R语言中Heat map的书 。而且,他自己也不认为R语言存在任何令人不满意的地方。 据Spectrum IEEE统计 ,在2015年排名前十的编程语言中,R语言是提升最快的。近期, 微软对R语言表现出极大的兴趣 。并且很快,微软的 Azure便开始支持R语言 了。


Alan J. Perlis:当某人说“我想要一门编程语言。它要能够根据我的目标自动生成代码”。让他拿根棒棒糖,一边玩去吧!


Raschka总结R和Python之间的不同在于,R是统计学家开发的(数学)语言,而Python是计算领域科学家开发,可以应用到统计学的编程语言。这就是说,二者都可以很好的应用于数据科学或者机器学习,但Python的语法更容易被程序员所接受。


Perl的没落


Raschka简单分析了Perl语言。作为一门古老的语言,Perl已经不可避免的走向了没落。Raschka表示,Perl曾经是他学习的第一门语言。但是,Perl目前主要用于简单的脚本编写,已经很少应用在机器学习的算法编写方面。


老而弥坚的Python


最后,Raschka夸赞了自己所喜爱的Python语言。尽管Python已经走过了20多年的风雨历程,Raschka认为它仍然可以继续流行下去。而且,Raschka还不遗余力的列出了自己最喜欢的Python工具——NumPy、Theano、 scikit-learn 、 matplotlib 等。


至于Ruby、Java、Scala、Lua等,Raschka没有亲身体验,暂未点评。


对于Raschka的言论, 很多人表示赞同,也有不少人反对 。有人表示,自己从R切换到Python,主要原因也是Python更方便与团队之外的人进行合作和沟通。也有人表示,作为一个新入门的程序员,利用R进 行数据科学的编程可以利用很多现成的库,十分得心应手。更有与Python打过8年交道的资深程序员表示,Julia十分具有吸引力,愿意花时间去尝试该 语言。亲爱的读者朋友,你眼中最好的机器学习编程语言又是哪个呢?



转载地址:http://www.linuxidc.com/Linux/2015-09/122791.htm

微信原文:http://mp.weixin.qq.com/s?__biz= ... 03096e19790&scene=4





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 学习编程 机器学习 编程语言 scikit-learn 编程语言

已有 1 人评分经验 论坛币 收起 理由
三世相思2013 + 60 + 60 奖励积极上传好的资料

总评分: 经验 + 60  论坛币 + 60   查看全部评分

沙发
mj2012 发表于 2016-3-20 11:33:48 来自手机 |只看作者 |坛友微信交流群
iRolly 发表于 2016-3-20 00:15
人大经济论坛经管爱问微信好号“jgasker”好文共享与推荐,实时答疑服务,欢迎关注!


谢谢分享

使用道具

藤椅
soccy 发表于 2016-3-20 19:59:09 |只看作者 |坛友微信交流群
对于R用户来说Python就是鸡肋,反之亦然。
已有 1 人评分经验 论坛币 收起 理由
三世相思2013 + 20 + 20 观点有启发

总评分: 经验 + 20  论坛币 + 20   查看全部评分

使用道具

板凳
lxy444 学生认证  发表于 2016-3-22 21:20:34 |只看作者 |坛友微信交流群
我觉得python和 R 都不错,反正都在用
已有 1 人评分经验 论坛币 收起 理由
三世相思2013 + 20 + 20 分析的有道理

总评分: 经验 + 20  论坛币 + 20   查看全部评分

使用道具

报纸
feng026 发表于 2016-3-23 07:42:30 来自手机 |只看作者 |坛友微信交流群
两个都可以用的,速度上的差异别那么在意,现在用GPU计算还是很少的,用服务器看起来差别没那么大,python 和R都很喜欢
已有 1 人评分经验 论坛币 收起 理由
三世相思2013 + 20 + 20 观点有启发

总评分: 经验 + 20  论坛币 + 20   查看全部评分

使用道具

地板
men007 发表于 2016-4-1 22:08:56 |只看作者 |坛友微信交流群
Python 可用的共享的资源很多,很容易上手。

使用道具

7
kingjuju 发表于 2016-4-3 00:51:57 |只看作者 |坛友微信交流群
不知道最后到底哪一种语言会胜出。 不过我自己是比较喜欢python and R

使用道具

8
sjs2001aq 发表于 2016-4-3 01:34:18 来自手机 |只看作者 |坛友微信交流群
以后是不是不需要人工了

使用道具

个人觉得Python功能全面点,R应该在统计或者数据分析上比较容易上手。
好像Python在处理string的能力跟速度上比R好。

使用道具

10
why4000 发表于 2016-4-12 22:25:55 |只看作者 |坛友微信交流群
还行,不过不够深入

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 21:33