你应该为工作选择合适的工具。
你正在处理的特定预测建模问题应该决定要使用的特定编程语言、库甚至机器学习算法。
但是,如果你刚开始学习并正在寻找一个学习和实践机器学习的平台呢?
在这篇文章中,你会发现Python是应用机器学习领域不断发展的平台,很可能在采用率和能力方面超越并取代R。
阅读本文后,您将了解
- Python机器学习的搜索量正在快速增长,并已超过R。
- Python机器学习职位的百分比正在增长,并已超过R。
- 近50%的受访从业者使用Python,并且这个比例还在增长。
通过我的新书《使用Python精通机器学习》启动你的项目,包括分步教程和所有示例的Python源代码文件。
让我们开始吧。
Python在机器学习领域不断发展
让我们看看机器学习领域Python不断发展的3个方面
- 搜索量。
- 招聘广告。
- 专业工具使用情况。
Python机器学习搜索量正在增长
搜索量可能表明学生、工程师和其他从业者正在寻找信息以开始或深入了解该主题。
Google提供了一个名为Google趋势的工具,可以深入了解关键词随时间变化的搜索量。
我们可以调查“Python机器学习”从2004年到2016年(过去12年)的增长情况。下面是此期间搜索量变化的图表

Python机器学习搜索流量增长
我们可以看到上升趋势始于2012年,并在2015年开始更陡峭的上升,这可能得益于TensorFlow等Python深度学习工具的推动。
我们还可以将其与R机器学习的搜索量进行对比,我们可以看到,从2015年年中左右开始,Python机器学习一直超越R。

Python机器学习 vs R机器学习搜索量
蓝色表示“Python机器学习”,红色表示“R机器学习”。
Python机器学习职位正在增长
Indeed是一个求职网站,和Google趋势一样,它们显示了与关键词匹配的招聘广告数量。
我们可以调查过去4年对“python机器学习职位”的需求。

Python机器学习职位增长
我们可以看到x轴是时间,y轴是与关键词匹配的职位发布百分比。该图显示从2012年到2015年几乎是线性增长,并在2016年呈曲棍球棒状增长。
我们还可以比较Python和R的招聘广告。

Python机器学习职位 vs R机器学习职位
蓝色表示“Python机器学习”,橙色表示“R机器学习”。
与Google搜索量相比,我们看到了一个更明显的趋势。Indeed.com上的招聘广告百分比显示,自2012年以来,对Python机器学习技能的需求一直主导着R机器学习技能,并且这种差距在近年来还在不断扩大。
KDNuggets调查结果:更多人使用Python进行机器学习
我们可以通过查阅KDnuggets软件调查结果来了解机器学习从业者使用的工具。
这是2016年结果中的一段引用
R仍然是主要的工具,占49%的份额,但Python增长更快,几乎赶上R。
— Gregory Piatetsky
该调查跟踪机器学习和数据科学专业人员使用的工具,参与者可以选择多个工具(我认为这是常态)
这是Python在过去4年用于机器学习的增长情况
1 2 3 4 |
2016 45.8% 2015 30.3% 2014 19.5% 2013 13.3% |
下面是这个增长的图表。

KDNuggets调查结果 – 使用Python的专业人员百分比.png
我们可以看到一个接近线性的增长趋势,2016年Python被近50%的专业人员使用。
需要注意的是,近年来参与投票的人数也从数百人增加到数千人,并且参与者是自愿选择的。
有趣的是,scikit-learn也单独出现在投票中,占17.2%。
欲了解更多信息,请参阅:KDnuggets 2016软件调查结果。
O’Reilly调查结果:更多人使用Python进行机器学习
O’Reilly每年都会进行数据科学薪资调查。
他们从专业数据科学家和机器学习从业者那里收集大量数据,并以非常好的报告形式呈现结果。例如,这是2016年数据科学薪资调查报告[查看PDF报告]。
该调查跟踪从业者的工具使用情况,与KDnuggets数据一样。
引用2016年报告的关键发现,我们可以看到Python在数据科学薪资中扮演着重要角色。
Python和Spark是对薪资贡献最大的工具之一。
— 2016年数据科学薪资调查报告第1页。
回顾调查结果,我们可以看到过去4年Python生态系统在机器学习中的使用呈现类似的增长趋势。
1 2 3 4 |
2016 54% 2015 51% 2014年 42%(从图表推断) 2013 40% |
同样,我们可以绘制这个增长。

O’Reilly投票结果 – 使用Python的专业人员百分比.png
有趣的是,2016年的结果与KDNuggets投票的结果非常相似。
引用
你可以在互联网上找到支持任何立场的引用。
对引用持保留态度。尽管如此,引用可以很有洞察力,提出并支持观点。
让我们首先看看一些新闻网站和博客中关于Python在机器学习领域增长的精选引用。
新闻引用
在过去几年中,Python已成为数据科学编程领域的领导者。虽然仍有很多人使用R、SPSS、Julia或其他几种流行语言,但Python在该领域日益增长的受欢迎程度在其数据科学库的增长中显而易见。
— Katharine Jarmul,《数据科学简介:如何使用Python处理“大数据”》,Dataconomy
我们的研究表明,Python是数据科学分析中最受欢迎的语言之一,超过三分之一(36%)的组织在使用它。
— Dave Menninger,《大数据在Strata+Hadoop World 2016上成长》,SmartDataCollective
……过去几年出现了大量尖端、可商用的机器学习框架,包括非常成功的scikit-learn Python库以及谷歌的Tensorflow和微软研究院的CNTK等广受宣传的库发布。
— Josh Schwartz,《机器学习不再仅仅是专家的事》,哈佛商业评论
请注意,scikit-learn、TensorFlow和CNTK都是Python机器学习库。
Python用途广泛,简单,易于学习,并且功能强大,因为它在各种情况下都很有用,其中一些与数据科学无关。R是一个专门的环境,旨在优化数据分析,但学习起来更难。如果你坚持使用R而不是Python,你的收入会更高。
— Roger Huang,《数据科学性感度:你的Python和R指南,以及哪个最好》,TheNextWeb
Quora引用
以下是一些从Quora问题中摘选的关于Python在机器学习中使用的引用。
Python是一种流行的科学语言,也是机器学习领域的一颗新星。如果它能从R手中夺走数据分析的桂冠,我会感到惊讶,但NumPy中的矩阵处理可能会挑战MATLAB,而像IPython这样的通信工具非常有吸引力,是迈向未来可复现性的一步。我认为用于机器学习和数据分析的SciPy栈可以用于一次性项目(如论文),而像scikit-learn这样的框架可能已经足够成熟,可以在生产系统中使用。
— Aswath Muralidharan,生产工程师。回答Quora问题“机器学习领域排名前五的编程语言是什么?”
我还推荐Python,因为它是一种出色的全能编程语言,对于草拟代码片段和探索数据(使用IPython shell)非常有用,非常适合记录分析过程链中的步骤和结果(IPython Notebook),拥有大量适用于几乎任何机器学习目标的库,甚至可以针对生产系统实施进行优化。在我看来,在这些类别中的任何一个方面,都有比Python更优秀的语言——但没有一种语言能提供这种多功能性。
— Benedikt Koehler,DataLion创始人兼首席执行官。回答Quora问题“首次学习机器学习时最好使用哪种语言?”
[…] 这是因为该语言可以为那些只想快速完成工作的人创造一个高效的环境。它很容易封装C库,C++也可以做到。这使得Python可以访问广泛的现有代码。此外,该语言在实现事物时不会妨碍你。在许多方面,它使广泛任务的编码“再次变得有趣”。
— Shawn Masters,工程副总裁。回答Quora问题“鉴于Python用于机器学习,Python会像Java一样流行吗?”
在我看来,Python确实主导了这一类别。快速搜索任何人工智能、机器学习、自然语言处理或数据分析主题,加上“Python”,都会返回有用的、积极维护的库示例。
— Ryan Hill,程序员。回答Quora问题“哪种编程语言拥有最好的机器学习库存储库?”
总结
在这篇文章中,你发现Python是应用机器学习领域不断发展的平台。
具体来说,你了解到
- 对Python机器学习感兴趣的人数比R多,并且还在增长。
- Python机器学习技能的招聘职位数量比R多,并且还在增长。
- 使用Python的受访数据科学专业人员数量逐年增长。
这是否影响了你决定开始使用
Python机器学习生态系统?
在下面的评论中分享你的想法。
我同意目前Python和R是机器学习真正需要的两个平台。然而,Julia阵营的竞争日趋激烈。我最近不得不从头开始为美国的仓库网络位置问题编写一个定制的k-means++算法。使用R中的flexclust包会导致严重的性能问题,Python也是如此。然而,Julia中的JIT编译器被证明几乎和C一样快:比R快大约两个数量级(可能也比Python快),而且Julia更容易(更高级)和紧凑地编写代码。当然,Julia仍处于测试阶段(0.5版),但已经有1000多个高质量的包可用。就目前而言,Julia尚未准备好用于商业应用,但肯定已准备好用于内部项目。Tensorflow已经移植,我希望Keras也会跟进。Mxnet也可用。Julia在设计时也将并行计算作为标准功能,并将从笔记本电脑移植到超级计算机集群。这是科学计算的未来。我打算尽快在我的工作中用Julia取代C、Python和R
谢谢Gerrit,一些不错的观点。
它可能在3-5年内成为首选生态系统,但今天/今年/明年,如果你能用Python交付成果,你就能找到工作。
嗨,Jason,我想问一下您对python与R的个人看法。例如,您能否不给我看趋势和所有统计数据,而是问一下(如果可以的话)您在日常工作中如何使用它们,您更喜欢哪一个以及为什么?例如,您认为不同的任务是否用其中一个比另一个完成得更好?根据您的经验,哪些是这些任务以及为什么?
在您的一篇文章中,我看到您写道python适用于中级任务,而R适用于高级任务。您介意对此进行一些详细说明吗?
好问题,Kirk。
这是我的观点和用法,其他人可能不同意。
R有更多的技术,功能更强大,但更难使用。有时它真的很痛苦,但我仍然喜欢它。
Python使用起来简单有趣,但方法较少。它是一种“真正”的编程语言,因此任何想法都可以迅速变成程序——我们作为程序员喜欢这一点。
我两者都用。我越来越多地使用Python进行快速模型和生产/运营模型。我使用R进行深入的R&D一次性项目。
话虽如此,市场对Python技能的需求越来越大,所以我尽量更多地倾向于Python。
这有帮助吗?
感谢分享信息。它确实有助于在应用机器学习中使用python。
很高兴听到这个消息。
有没有网站列出Python或R的新发明算法?
我也对泄露的、以前的秘密算法感兴趣 :-)。
据我所知没有。
随着Keras和TensorFlow可用于R,我猜测Python要保持其第一的位置将会变得艰难。
也许吧。我认为Python可能更容易操作,这可能会产生影响。
非常感谢,我现在确信Python是我学习机器学习的好工具,
我没有学习过计算机科学或与编程语言相关的专业。
然而,Python语法可读性强,如果遇到一点困难,快速搜索以了解更多并澄清问题也无妨。
我认为有一个庞大的Python社区,他们通过网络互相支持;您就是支持性Python社区的最佳范例。
谢谢
我同意。
Python仍然被认为是应用机器学习的首选语言,还是R已经发展了很多?
是的。