入门必读 机器学习六大开发语言
机器学习初学者一般需要面临一个问题:
答案可能会让你感到惊讶:对于专家来说,这并不重要。 只要您了解所选语言的机器学习库和工具,语言本身并不是那么重要。 有相当多的机器学习库支持多种编程语言。 当然,根据您在公司中的开发角色以及您需要实现的任务,某些语言、库和工具将比其他语言、库和工具更有效。 接下来我们来看看六种主流机器学习语言——R语言、MATLAB、Python、Java、C/C++、Lisp。
R语言
R 是专门为对数据执行计算而设计的语言工具。 它在大规模数据挖掘、可视化和报告应用程序中处于领先地位。 通过CRAN资源库,您可以轻松获取大量工具包,可应用于几乎所有机器学习算法、数据测试和分析过程。 R 用于表达关系、转换数据和执行并行操作的语法很优雅机器学习英语,但有些深奥。
据雷锋网报道,KDNuggets 最近的一项调查发现,R 是分析、数据挖掘和其他数据科学任务中最流行、最常用的语言。 但近年来,Python逐渐抢走了更多用户。
KDNuggets 2015 民意调查:用于分析、数据挖掘和数据科学任务最常用的编程语言是 R。
MATLAB
MATLAB 在学术界非常受欢迎,因为:
这种基于矩阵的语言通常用于构建机器学习算法的原型,有时也用于开发复杂的解决方案。 它的商业许可证特别昂贵,但对于一些企业用户来说可能是值得的,因为它可以显着减少开发和研究所花费的时间和精力。 AI 大师 Andrew Ng 建议初学者使用 Octave 或 MATLAB 来入门。 相比之下,Octave 是 MATLAB 的免费替代品,它们非常相似,语法几乎相同。 只是Octave的工具箱较少,IDE也没有MATLAB成熟。
Python
尽管Python是一种通用编程和脚本语言,但它逐渐受到数据科学家和机器学习工程师的欢迎。 与 R 和 MATLAB 不同,Python 语言并未内置数据处理和科学计算的习惯用法,但 NumPy、SciPy 和 Pandas 等库已将 Python 的功能提升到与 R 和 MATLAB 相同的水平。 其他人认为这使得 Python 的语法更易于使用。
支持Python的开源框架有大量:例如Scikit-learn、Theano和TensorFlow。 这些专业的机器学习库可以让开发者更轻松地训练机器学习模型,有的还可以很好地支持分布式计算。 通常,这些库中大部分与性能相关的代码仍然是用C或C++编写的,有的甚至使用Fortran; Python 的作用主要是作为包装器或 API。 R语言包类似。
Python生态系统的最大优势是更容易组装复杂的端到端产品或服务,例如使用Django或Flask的Web应用程序,使用PyQt的桌面应用程序,甚至使用ROS的自主机器人代理。
值得一提的是,三大 MOOC 巨头(edX、Coursera 和 Udacity)都提供 Python 入门课程。 此外,包括麻省理工学院和加州大学伯克利分校在内的美国顶尖大学已将Python作为计算机科学专业新生的必修语言。 可以预见,未来将会有更多的顶尖IT院校转向Python,相反,它也会在业界持续受到欢迎。
总而言之,Python是机器学习领域的全才,很多人认为它是未来的大趋势。
爪哇
Java是大多数软件工程师的选择。 这是由于其干净、一致的面向对象编程实现; 以及使用 JVM 的平台独立性。 它牺牲了简单性和灵活性来使代码更清晰并提高可靠性。 这使得它广泛应用于重要性较高的企业软件系统中。 为了保持相同水平的可靠性并避免编写混乱的界面机器学习英语,已经使用 Java 的公司倾向于继续使用该语言进行机器学习应用程序。
Java 有许多有用的工具和库(例如 Weka)用于分析和设计原型。 此外,Java还有许多用于开发大规模分布式学习系统的一流选项:例如Spark+MLlib、Mahout、H2O和Deeplearning4j。 腾讯一个月前开源的大数据计算平台Angel也使用了Java。 这些框架/库对行业标准的数据处理和存储系统(如Hadoop/HDFS)非常友好,使得它们之间的兼容和集成非常方便。
C/C++
C/C++ 是编写低级软件(例如操作系统的一部分或网络草稿)的理想语言。 在这些应用场景中,计算速度和内存效率至关重要。 出于同样的原因,它们也是执行机器学习基础步骤的多功能选项。 然而,缺乏数据处理的习惯抽象以及增加了编写代码负担的内存管理负担,使得它们对初学者非常不友好。 使用C/C++开发一个完整的端到端系统也是一种负担。
对于嵌入式系统,例如智能设备、汽车和传感器,可能需要使用 C 或 C++。 如果现有的平台基础或者具体的应用已经使用了C/C++,那么使用它们会更加方便。 此外,还有很多基于C/C++的机器学习库,如LibSVM、Shark、mlpack等。
口齿不清
这是人工智能编程语言的祖先。 据雷锋网了解入门必读 机器学习六大开发语言,Lisp诞生于1958年,是第一个用于人工智能的计算机语言。 该语言非常灵活且可扩展。 它的一些特性,例如快速原型设计和方便的“宏”实用程序,在人工智能开发中非常有用。 使用 Lisp 编写复杂的程序相对容易。 它是一种以简单的方式创建强大算法的语言。
Lisp 具有清晰的映射,使得系统更改相对容易。 它的读取-评估-打印循环(读取-评估-输出循环,简称REPL)提供了一个交互式开发环境。 动态类型、条件系统和强大的对象系统是Lisp的主要特征,使其一度成为AI领域最常用的语言之一。 虽然目前在国内还比较小众,但被业界公认为最强大的机器学习语言之一。
企业解决方案
除了这些语言之外机器学习英语,还有几种用于数据建模和企业分析的商业产品,可以在更受控的数据处理环境中应用机器学习模型。 RapidMiner、IBM SPSS、SAS+JMP 和 Stata 都属于这一类。 它们旨在为数据分析提供可靠的端到端解决方案,并且通常具有可编程 API 和可编写脚本的语法。
基于机器学习的云服务的日益普及是该领域的最新发展。 这包括亚马逊机器学习、谷歌预测、DataRobot、IBM Watson 和 Microsoft Azure。 他们为客户提供扩展学习解决方案以处理大量数据并快速测试不同模型的解决方案。 只要你在机器学习方面有扎实的基础,使用一个新产品或平台就相当于学习如何使用一个新工具。
给初学者的建议:
选择语言/库时一个非常重要的考虑因素是如何平衡开发时间和执行时间。 如果需要几个月的时间来开发,那么可以在几分钟内处理数据的学习管道可能毫无价值。 快速创建和测试原型非常重要,因为第一次尝试经常会失败,开发人员需要一遍又一遍地重复。
这就是为什么经验丰富的机器学习工程师如此受欢迎:在开发时机器学习英语,他们将使用任何适合他们的工具/语言/库。 据雷锋网了解,这是AI产品开发中常见的场景:使用Python、R等高级语言开发算法原型,然后将解决方案转移到Java或C/C++中生产最终结果产品。 因此,如果你想成为一名高级机器学习开发人员,仅了解一种语言是不够的。
Viudacity,莱茨格罗
相关文章:
这篇文章足以读完 Google、微软、OpenAI 等巨头的七大机器学习开源项目。
盘点四大私有机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn
BAT是在玩大游戏吗?深度盘点国内四大机器学习开源平台
IEEE Spectrum发布最新编程语言排名:大数据是赢家
谷歌试水——Go语言也想在机器学习领域冒险?
猜你喜欢
发表评论
评论列表