机器学习,就用Python!五大专家详解其优势何在

编译 | AI科技大本营(公众号ID:rgznai100)

参与 | 林椿眄

编辑 | 明明

【AI科技大本营导读】Python 语言是机器学习领域最优秀的编程语言之一,现在它正挑战着 R 语言在学术界和研究领域的统治地位。那么,为什么 Python 语言在机器学习领域会如此受欢迎?Python 领域资深专家 Mike Driscoll 组织了一次访谈会,邀请了五位 Python 专家和机器学习社区人士,共同分析 Python 语言受欢迎的原因。营长将五位人士的观点罗列如下。

“编程是一项社交活动 - Python社区已经意识到了这一点”

第一位:Python Twisted 网络编程框架创始人 Glyph Lefkowitz ( @glyph ) ,曾在 2017 年荣获 PSF 社区服务奖

人工智能是一个大而全的术语,通常代表着当前计算机科学研究中最先进的领域。

有一段时间,我们理所当然地认为那种用于基本的图遍历技术就是所谓的 AI 技术。那时候, Lisp 还是门强大的人工智能语言,它的使用频率高于其他语言很多,使用这门语言能让研究人员更容易地解决相关的 AI / 机器学习问题。但现在,我认为 Python 已经在很大程度上取代了Lisp ,因为二者除了有相似的高层次属性外, Python 还拥有出色的第三方库,以及与操作系统完美地集成。

Lisp 的使用者们可能会反对我的观点,所以我应该说清楚。我没有对 Python 在表达层次中的位置做出精确地陈述,只是说 Python 和 Lisp 都处于相同的语言类别中,在处理诸如垃圾回收,内存安全,模块,名称空间和高级数据结构等方面的问题时有着相似的特性。

在更具体的机器学习层面,也就是大家最近谈论的 AI ,我认为两种语言的差别就更加明显了。Python 中的 NumPy 库及其强大的处理机制的存在,使得研究人员可以对高级别的内容进行研究,并进行高性能的数据处理。如果不能拥有强大的数字处理功能,那机器学习系统是没有任何意义的。

Python 社区致力于为非程序员提供友好的介绍和操作系统的支持,这也确实增加了其在数据科学和科学计算等相关学科中的应用。各种领域的工作人员,包括统计人员、天文学家、生物学家和商业分析师等,也都已经成为 Python 程序员,并针对各自领域工作的需求改进并拓展了Python 工具包的使用。编程也逐渐成了一种社交活动,这在 JavaScript 社区和 Python 社区都得到了充分的证明和认可。

此外,由于机器学习是一个集成度特别高的学科,任何AI / 机器学习系统都需要从现实世界中提取大量的源数据并作为训练数据或系统输入,因此 Python 自带的丰富的依赖库能够帮助用户更好地访问和转换数据。

▌“Python允许使用者专注于解决现实问题”

第二位:PSF 社区的联合创始人及 eGenix 的首席执行官 Marc-Andre Lemburg ( @malemburg )

对于没有受过计算机科学专业学习的科学家来说,Python 也是非常容易理解。当你尝试驱动所需要研究的依赖库时,Python 能帮助你消除了许多必须处理的复杂性问题。

在 Numeric (现在是 NumPy ) 开始开发之后,增加了 IPython notebook (现在是 Jupyter notebook )功能, matplotlib 和其他的可视化工具能够让我们更直观地了解数据分布。Python 让数据科学家去思考解决问题的方法,而不是单纯提供这些解决方案所需的技术。

与其他领域一样,Python 也是一门理想的集成语言,它将各种技术绑定在一起,Python 允许用户关注问题的本身,而不是把时间花在实现细节上。除了为用户提供更方便的功能之外,Python 还是一个理想的粘合平台,为开发人员与外部库的低层次集成人员之间搭建连接。这主要是由于 Python 可以通过一个完整的 C API 来访问。

▌“Python对于数学及统计学专业的人员来说是非常容易使用的”

第三位:研究者;《 Python Machine Learning 》一书的作者 Sebastian Raschka ( @rasbt )

我认为在 AI / 机器学习领域,Python 语言受欢迎主要有两个原因,且这两个原因是非常相关的。

首先,Python 代码非常容易阅读和学习。

我认为,大多数从事机器学习和人工智能的研究人员都希望以最方便的方式来实现自己的想法。他们的重点是研究和应用程序的开发,编程只是实现这个想法的工具。编程语言的学习越轻松,入门门槛越低,就会更受初学者的喜爱。同样,这也适用于数学及统计学相关人员学习。

不仅如此,Python 代码可读极强,这有助于保持最新的机器学习和 AI 的现状,例如,实现AI / 机器学习的新思路往往需要相对复杂的算法,而在阅读相关代码时,语言越透明,可读性越好,代码的调试也越容易。

第二个主要原因是, Python 本身是一种非常易于访问的语言,而且开发者还在 Python 中封装了很多优秀的依赖库,这也使得我们的工作变得更容易。没有人愿意花时间从头开始重新实现基本算法 ( 除非是研究机器学习和人工智能的专业人士 ) 。大量 Python 依赖库的存在将帮助我们专注于算法的实现,这比“重新发明轮子”来的更高效。

此外,Python 也是用于实现更高效的 C / C ++ 算法及 CUDA / cuDNN 的最好的“胶水”语言,这就是为什么现有的机器学习 / 深度学习库能够在 Python 中高效运行的原因,这对于机器学习 / AI 领域的工作也是非常重要的。

总而言之,我会说 Python 是一种强大的语言,它可以让研究人员和从业者更专注于解决机器学习 / AI领域的相关问题,这是其他语言所无法做到的。

▌“Python更专注于科学计算”

第四位:ThoughtWorks 的首席技术官及PSF社区会员 Luciano Ramalho ( @ramalhoorg )

在我看来,Python 之所以能够如此受欢迎的最重要和最直接原因是其 NumPy 和 SciPy 库能够支持 scikit-learn 这样的项目,这几乎是目前解决机器学习问题所需的标准配置。

首先,创建 NumPy,SciPy,scikit-learn 和其他库的原因是因为 Python 的一些功能使其更专注于科学计算。此外,Python 有一个简单而一致的语法,可以让非软件工程师人员更容易使用这门编程工具。

另一个原因是 Python 的运算符重载功能,能使代码可读性更好,简洁性更高。此外,Python 的缓冲协议 ( PEP 3118 ) ,是外部库在处理类似数组的数据结构时与 Python 进行高效交互的标准。最后,Python 为科学计算提供了丰富的依赖库和全面的操作系统,这也促进了更多的数据科学家使用。

▌“Python 有着严格而一致的风格”

第五位:Red Hat 的高级软件工程师;SQLAlchemy 的开发者 Mike Bayer (@zzzeek)

在 AI / 机器学习领域,我们正尝试开发我们的数学和算法。我们将希望保留和优化的算法封装打包成依赖库,如 scikit-learn 。然后我们继续重复这个过程,并分享一些关于如何组织和思考数据的笔记。

高级的脚本语言对于人工智能和机器学习是非常适合的,因为我们可以快速迁移并进行改动,我们创建的大部分代码代表的是实际问题中相关的数学知识和数据结构,而不是所谓的代码模板,因此我们可以根据实际问题的需要,尝试更改脚本的代码来解决我们的问题。

像 Python 这样的脚本语言更适合 AI / 机器学习的工作,因为它严格而一致的语法风格。每个 Python 使用者都可以更好地理解对方的 Python 代码,而其他语言的语法有可能会导致混淆和不一致的编程范例,这就是 Python 较其他编程语言的优势所在。

此外,IPython notebook 等工具的可用性使得我们可以在全新的平台上重复并分享我们的数学和算法工作。Python 能够突出我们所要完成的工作核心,还能够最小化计算机指令的所有内容,这一切过程 Python 都能自动完成,不需要你考虑任何问题,这也是 Python 语言强大之处。

作者 | Rich Gall 原文链接 https://datahub.packtpub.com/interview/python-machine-learning-expert-interviews/

原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2018-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

为什么Python如此适合AI和机器学习?5位Python专家告诉你

摘要:Python是机器学习最好的编程语言之一,和R语言一样,很快将会成为学术和研究领域统治者。但为什么Python在机器学习领域如此受欢迎? Mike Dri...

36060
来自专栏AI研习社

谷歌公布视频内容搜索 API 等 | 开发者头条

谷歌收购大数据竞赛平台 Kaggle 谷歌公布新机器学习 API:从视频中识别物体 Facebook 开源新一代机器学习 GPU 服务器 Big Basin ...

33150
来自专栏玉树芝兰

如何不编程,采集网站评论信息?(视频教程)

最近的一次组会,我们请来了一位分享嘉宾——15级研究生庞琳同学,给我们科研团队分享网站评论数据的采集。

9720
来自专栏数据科学与人工智能

【Python环境】学习Python:做数据科学还是网站开发?

本文的英文原文地址是:Python for Data Science vs Python for Web Development,发布时间是10月29日。译者一...

35380
来自专栏程序员互动联盟

【编程指导】如何系统、科学地自学编程知识?

对于什么样的学习才算得上“系统”几乎是一个哈姆雷特式的问题——人们很难在这一问题上达成一致。 因此抛出答案几乎只是在引发更多的争议。所以在讨论这个问题的时候,我...

401130
来自专栏FreeBuf

验证码的未来:扒一扒reCAPTCHA的那些事

reCAPTCHA的诞生及意义 CMU(卡耐基梅隆大学)设计了一个名叫reCAPTCHA的强大系统,让电脑去向人类求助。具体做法是:将OCR(光学自动识别)软件...

44950
来自专栏云资讯小编的专栏

腾讯云答治茜: CDN 将进入智能计算时代

在2017亚太CDN峰会上,腾讯云互联网行业总经理答治茜作了题为《CDN的智能计算时代》主题演讲。答治茜认为,随着人工智能时代的到来,CDN也在亟需技术的快速变...

32700
来自专栏程序员互动联盟

学了C语言,能开发什么项目?

直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?...

65350
来自专栏数据科学与人工智能

【Python环境】 信息图:用Python做数据科学

我想通过学习Python语言来学习数据科学,所以我在谷歌上搜索:“我想通过学习Python语言来学习数据科学。”而在谷歌,不一会儿的功夫就列出所有关于Pytho...

32090
来自专栏SDNLAB

Barefoot:可编程交换在5G中的潜力

22680

扫码关注云+社区

领取腾讯云代金券