对“机器学习”跃跃欲试的你,可能也有这样的问题:入门机器学习,我需要会那种(些)酷炫的编程语言呢?别问了,这个问题的“正解”可能会让你大吃一惊。

不论你选择哪种语言,只要对这种语言下的机器学习库和工具足够熟悉,语言本身就没有那么重要了。现在对应各种语言的机器学习库层出不穷。根据你在公司中担任的角色和所要完成的任务不同,某些语言和工具可能会比其他的更好用。

R

R 是一种为专统计计算而设计的语言。它在大规模的数据挖掘、可视化和报告方面已经取得了巨大的成功。你能够轻松地获取各种的包(通过 CRAN)来使用几乎所有的机器学习算法、统计测试和分析等。R 语言本身有着优美(虽然有些人会觉得晦涩)的语法用来表达数据的关系、变换和并行操作。

KDNuggets 最近组织了一次投票,结果表明 R 是 2015 年用于解决分析、挖掘及其他数据科学任务的最受欢迎的语言。不过,近年来 Python 的人气也在急剧上升。

MATLAB

MATLAB 在学术界很受欢迎,因为它能处理复杂的数学表达式,对代数和微积分有强大的支持,还支持符号运算。同时,从数字信号处理到计算生物学,又或者是其他的科目,它都有对应的工具箱可用。它经常被用于开发新的机器学习算法的原型,有时也会被用于开发最终完整的工具。它的商用许可的确非常昂贵,但也对得起它在研发方面带来的方便。Octave 是一款免费的 MATLAB 替代品。它的语法与 MATLAB 几乎相同,但只提供一部分工具箱,IDE 也略微逊色。

Python

虽然 Python 是一种更通用的编程语言和脚本语言,但它在数据科学家和机器学习工程师中的人气也是急剧上升。跟 R 和 MATLAB 不同,它并没有内置数据处理和科学计算专用的语法,但它有像 NumPy、SciPy 和 Pandas 这样的库用更友好的语法提供了同样的功能。

像 scikit-learn、Theano 和 TensorFlow 这样的机器学习库让你能够方便地训练各种机器学习模型,还能用上分布式计算。当然,这些库中最影响性能的部分一般还是用 C/C++ 甚至 Fortan 编写的,而 Python 包则是作为它们的接口(这在 R 中也很常见)。

但 Python 最大的优势在于它的生态系统使得你能够很方便地搭建起一个复杂的端到端服务,比如用 Django 或是 Flask 搭建 Web 应用,或是用 PyQt 开发桌面应用,甚至用 ROS 搭建一个自主机器人。

这种强大的通用性也是我们在“机器学习工程师”纳米学位项目中大量使用 Python 的主要原因。

Java

由于它干净一致的实现、面向对象编程的风格以及通过 JVM 获得的平台独立性,Java 是很多软件工程师的首选语言。它以简洁性和灵活性为代价换取了明确性和可靠性,使它在实现重要的企业软件系统时非常受欢迎。对于那些一直使用 Java 的公司,当他们需要开发机器学习产品时,为了保持同样的可靠性和避免写一堆混乱的接口,他们可能更倾向于继续使用 Java。

除了一些可以用来做分析和原型开发的库和工具(比如 Weka)以外,要用 Java 开发大规模分布式的机器学习系统,我们有很多选择,比如 Spark+MLlib、Mahout、H2O 以及 Deeplearning4j。这些库和框架也很方便跟工业级别的数据处理和存储系统比如 Hadoop/HDFS 整合在一起。

C/C++

在开发像操作系统组件和网络协议这样计算性能和内存使用效率极为重要的底层软件时,C/C++ 是最理想的选择。由于同样的原因,它们在实现机器学习算法的关键部分时也很受欢迎。但是它们没有内建的关于数据处理操作的抽象,内存管理的任务也很繁重,这使得它们对新手来说不太合适,而且在开发完整的端到端系统时也比较笨重。

在开发嵌入式系统(比如智能汽车、智能传感器等),可能必须使用 C/C++。而在其他场景下,用它们进行开发的便利程度可能要视现有的基础设施和具体的应用而定。不过无论如何,我们并不缺少 C/C++ 的机器学习库,比如 LibSVM、Shark 和 mlpack。

企业级解决方案

在这些语言和库以外,还有很多统计建模和商业分析的商用产品,用于在更为受控的数据处理环境下应用机器学习模型。这些产品,包括 RapidMiner、IBM SPSS、SAS+JMP 和 Stata 等,它们的目标是为数据分析提供可靠和端到端的解决方案,通常也会将 API 或是脚本语法暴露给用户。

近年来还涌现出了一批“机器学习即服务”平台,比如 Amazon Machine Learning、Google Prediction、DataRobot、IBM Watson 和 Microsoft Azure Machine Learning 等。它们使你能够拓展你的机器学习产品的规模,处理巨量的数据以及快速地对不同的模型进行试验。只要你在机器学习领域打好了坚实的基础,使用这些平台就像学习使用一门新工具一样简单。

特别提示

选择语言和库时要注意考虑开发时间和实际性能之间的平衡。一条能够飞速处理数据的流水线如果需要几个月来开发,在有些情况下这可能就毫无用处。一般来说,能够快速地搭建和测试原型会更重要,因为一开始你肯定会失败。

这也是为什么大部分公司都想寻找那种已经有惯用的工具 / 语言 / 库的机器学习工程师。工业界往往会用 Python 和 R 这样的高层次语言来开发算法的原型,然后用 Java 或是 C/C++ 来开发生产级别的解决方案。

这篇文章对你有所启发?不如分享到朋友圈,让更多伙伴看到!

▲ 本文由优达学城(Udacity)原创,作者 Arpan Chakraborty,原标题 Languages and Libraries for Machine Learning

入门机器学习需要会哪些编程语言?相关推荐

  1. 小白入门机器学习必备:编程语言环境介绍及搭建

    导读:工欲善其事,必先利其器,机器学习也不例外.算法原理理解得再清楚,最终也需要通过编写代码来真正实现功能和解决问题. 本文将介绍当前机器学习主流的编程语言环境,当前机器学习使用最多的编程语言是Pyt ...

  2. 【资源下载】921页《用Python3带你从小白入门机器学习实战》教程手册

    ↑ 点击上方[计算机视觉联盟]关注我们 [导读]Python是当前机器学习最流行的使用编程语言.Matt Harasymczuk12月23日发布了最新使用Python3教你入门机器学习的手册,总共92 ...

  3. 《机器学习入门实战》第 01 篇 如何入门机器学习?

    文章目录 机器学习与数据挖掘 传统入门方法的问题 逆向学习方法 专栏内容介绍 目标人群 专栏章节 机器学习与数据挖掘 如果你是一个想要入门数据科学的初学者,首先需要面对的就是各种相关的名词和概念.例如 ...

  4. 我是这样入门“机器学习”的

    我是这样入门"机器学习"的 叶锦鲤发表于悦思悦读订阅 原文链接:https://cloud.tencent.com/developer/article/1357704 在这篇文章中 ...

  5. 入门机器学习 21 天后 , 高薪 Offer 就在眼前

    今天,没有套路,只想真诚的讲个故事,分享给大家一个来自<极简机器学习入门>的学员天明同学的真实学习事例. 天明在 2013 年毕业,做过并行计算开发.嵌入式底层,目前在游戏创业公司做服务器 ...

  6. 经过半年的摸爬滚打,入门机器学习如此简单

    经过半年的摸爬滚打,入门机器学习如此简单? 知道自己为什么学习机器学习 1.可能通过机器学习更好的深入深度学习.那么机器学习就点到为止.两周时间了解机器学习的理论与代码的实现.一周的时间去做机器学习的 ...

  7. 21 天零基础入门机器学习 , 高薪 Offer 就在眼前

    今天,想真诚地讲个故事,分享给大家一个来自<极简机器学习入门>的学员天明同学的真实学习事例. 天明在 2013 年毕业,做过并行计算开发.嵌入式底层,目前在游戏创业公司做服务器开发,以下是 ...

  8. 课程 | 中科院教授带你快速入门机器学习

    机器学习,说简单就简单,说难还真难,对于还没入行的同学,大概最难的是如何入门机器学习?应该掌握哪些知识?看什么书最高效?如何避免绕弯?如何利用已有基础进一步提高水平?

  9. 新书上市 | 数学不好,Python不行,还能入门机器学习吗?

    没错,图灵君又来安利好书了! 什么书?机器学习?机器学习的书已经很多了,这本有啥特别的吗? 当然有. 话说有位日本网友,买了40多本数学和机器学习相关的书,愣是没有学会,直到遇到了这本,那叫一个相见恨 ...

最新文章

  1. java导入包写在第二行的吗_使用Java命令行方式导入第三方jar包来运行Java程序的命令...
  2. 深度学习系列之CNN核心内容
  3. 百度地图 js 在安卓端手指缩放无效_利用百度地图绘制3D轨迹演示
  4. DCMTK:OFStack类的测试程序
  5. pert计算公式期望值_PERT和三点估算技术
  6. Azure 和 Linux
  7. html框架有什么作用,使用HTML5+CSS+JS框架有那些好处
  8. Android Binder漏洞挖掘技术与案例分享
  9. 1024程序员日,互联网公司们福利感人;支付宝36万招“找茬”程序员
  10. php 导出excel 数字,PHP导出excel时数字变为科学计数的解决方法
  11. COCO2017 test-dev评估
  12. 【开源】技术宅硬核跨年,DIY墨水屏日历:自动刷新位置、天气,随机播放2000多条「毒鸡汤」...
  13. 寻求任意颜色转CMY的方法,帮个忙
  14. 微信小程序云开发增加定时任务
  15. 整合百度AI实现手机拍照识别车牌号
  16. 中国成全球最大工业机器人市场 年增长速度25%
  17. Elasticsearch-analysis-pinyin7.6.0--可选参数详情
  18. 有利可图网_您的基于云的应用程序可能是有利可图的产品
  19. haproxy 客户端真实IP地址添加白名单
  20. 修改android.policy.jar全屏

热门文章

  1. 图像识别流程学习总结
  2. 组员组长mysql_GitHub - gzh51906/ManKeZhan: 组长:黄林芳 组员:陈炜,王佳伟
  3. SHT30使用的学习过程1SHT30工作模式介绍
  4. PyCharm代码格式化插件
  5. 谈谈基于深度相机的三维重建
  6. 斯坦福大学计算机科学专业硕士排名,斯坦福大学计算机系统研究生排名关键的都看过来...
  7. font face=微软雅黑 color=DodgerBlue*IncomesESL Analy*/font
  8. Session.CLIENT_ACKNOWLEDGE
  9. 干货 | Trip.com Android 11 适配之旅
  10. 如何直观地理解矩阵的秩?