入门必读 机器学习六大开发语言

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介:

入门必读 机器学习六大开发语言

机器学习的初学者,普遍需要面对一个问题:

到底学习哪个编程语言

答案可能会让你惊讶:对高手来说,这关系不大。只要你了解所选语言的机器学习库和工具,语言本身其实没那么重要。相当多的机器学习库支持多种编程语言。当然,取决于你在公司中的开发角色和你需要实现的任务,有些语言、库和工具会比其他的更高效。下面,我们来看看六大主流机器学习语言——R 语言、MATLAB、Python、Java 、C/C++ 和 Lisp。

R 语言

入门必读 机器学习六大开发语言

R 是一个专门设计来进行数据计算的语言工具。在大规模数据挖掘、可视化和报告的应用场景中,它处于领先地位。通过 CRAN 资源库,你能轻易获得海量工具包,能应用于几乎所有的机器学习算法、数据测试和分析过程。R 语言用于表达关系、转化数据以及进行并行操作的语法十分优雅,但略显深奥。

雷锋网消息,KDNuggets 最近的调查发现,在分析、挖据和其他数据科学任务中,R 是最受欢迎、最常用的语言。但近年来 Python 逐渐抢走更多用户。

入门必读 机器学习六大开发语言


KDNuggets 2015 民意调查: 分析、挖据和数据科学任务中最常用的编程语言是 R。

MATLAB 

入门必读 机器学习六大开发语言

MATLAB 在学术界十分普及,这是因为:

  • 它强大的数学处理能力;

  • 对代数、微积分有丰富支持;

  • 支持符号计算;

  • 对不同学科(从数字信号处理到计算生物学)有一系列丰富的工具箱。

这门基于矩阵的语言,经常应用于机器学习算法的原型设计,有时还被用于开发复杂的解决方案。它的商用许可特别贵,但对有些企业用户来说也许值得,因为它可以大幅减少开发、研究耗费的时间和精力。AI 大牛吴恩达推荐初学者使用 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 的角色主要是作为 wrappers 或者 API。R 语言包与之类似。

Python 生态系统最大的优势在于:用它组合出一个复杂的端到端产品或服务比较容易,比如说使用 Django 或 Flask 的网络应用,还有使用 PyQt 的桌面应用,甚至是使用 ROS 的自主机器人代理。

值得一提的是,慕课三巨头 (edX, Coursera, and Udacity)全都提供了  Python 的入门课程。另外,包括 MIT、加州大学伯克利分校在内的美国顶级学府,已经把 Python 作为计算机新生的必修语言。可以预期,将来会有更多的 IT 顶级名校转向 Python,与之相对的它在工业界的不断普及。

总而言之,在机器学习领域,Python 是一个全能多面手,许多人认为它是未来的大趋势。

Java

入门必读 机器学习六大开发语言

Java 是大多数软件工程师的选择。这是由于在面向对象的编程中,它干净、一致的执行方式;以及使用 JVMs 的平台独立性。它牺牲了简洁和灵活性,以使代码更清楚明白,并提高可靠性。这使它广泛应用于重要级别较高的企业软件系统中。为了维持相同水平的可靠性,并避免编写出乱七八糟的界面,正在使用 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

入门必读 机器学习六大开发语言

这可是 AI 编程语言的祖师。就雷锋网所知,Lisp 诞生于 1958 年,是有史以来第一个用于 AI 的计算机语言。该语言十分灵活、并可扩展。它的一些属性,比如快速原型设计和方便的“宏”使用(macro utility),在 AI 开发中十分有用。编写复杂程序使用 Lisp 相对容易。它是一个能用简单的方式创造强大算法的语言。

Lisp 有着清楚的映射,用它进行系统性的改变相对容易。它的 Read-eval-print 回路(读取-求值-输出的回路,简称 REPL)提供了交互性的开发环境。动态类型(Dynamic typing)、condition system 以及强大的对象系统(object system)是 Lisp 主要特点,使它一度成为 AI 领域最常用语言之一。目前虽然在国内比较小众,但业内公认它是最强大的机器学习语言之一。

企业方案

入门必读 机器学习六大开发语言

这些语言之外,还有几个用于数据建模和和企业分析的商业化产品,它们能在具有更高可控性的数据处理环境中应用机器学习模型。 RapidMiner, IBM SPSS, SAS+JMP 和 Stata 都属于这类产品。它们旨在为数据分析提供可靠的端到端解决方案,并通常有可编程 API 以及可编写脚本的语法。

不断普及的基于机器学习的云服务,是该领域的最新发展。这包括亚马逊机器学习,Google Prediction, DataRobot, IBM Watson (沃森) 和 Microsoft Azure。对于把学习方案扩展到对海量数据的处理,以及用不同模型进行快速测试,它们向客户提供了解决方案。只要你有坚实的机器学习基础,使用新产品或者新平台就相当于学习怎么使用一个新工具。

对初学者的建议:

选择语言/库时一个很重要的考虑是如何平衡开发时间和执行时间。如果需要几个月来开发,一个能在几分钟内完成数据处理的学习通道也或许一文不值。快速地创建、测试原型非常重要,因为首次尝试一般都是失败的,开发者需要不断重复。

这就是为什么有经验的机器学习工程师会如此抢手:他们做开发时,会使用任何用着顺手的工具/语言/库。就雷锋网(公众号:雷锋网)所知,在 AI 产品开发中,这是一个经常发生的场景:用 Python、R 这些高层语言开发算法原型,然后把方案转移到 Java 或者 C/C++ 上,来生产终端产品。因此,想成为高层次的机器学习开发者,只会一种语言是不够的。

via udacityletzgro

相关文章:

Google试水—Go语言也要冒险尝试机器学习?

IEEE Spectrum公布编程语言最新排行:大数据是赢家

BAT 在下一盘大棋?深度盘点国内四大机器学习开源平台

盘点四大民间机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn

谷歌、微软、OpenAI 等巨头的七大机器学习开源项目 看这篇就够了


本文作者:三川


本文转自雷锋网禁止二次转载,原文链接

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
26 0
|
2月前
|
机器学习/深度学习
大模型开发:解释正则化及其在机器学习中的作用。
正则化是防止机器学习过拟合的技术,通过限制模型参数和控制复杂度避免过拟合。它包含L1和L2正则化,前者产生稀疏解,后者适度缩小参数。选择合适的正则化方法和强度对模型性能关键,常用交叉验证评估。
|
2月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
60 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
83 1
|
1天前
|
机器学习/深度学习 算法 图计算
图机器学习入门:基本概念介绍
图机器学习是机器学习的分支,专注于处理图形结构数据,其中节点代表实体,边表示实体间关系。本文介绍了图的基本概念,如无向图与有向图,以及图的性质,如节点度、邻接矩阵。此外,还讨论了加权图、自循环、多重图、双部图、异构图、平面图和循环图。图在描述数据关系和特征方面具有灵活性,为机器学习算法提供了丰富的结构信息。
5 0
|
2天前
|
机器学习/深度学习
机器学习基础入门(二)(线性回归与成本函数)
已知一系列房子的大小以及其对应的价格的数据,要求是已知房子大小预测其房子的价格
|
6天前
|
机器学习/深度学习 算法 数据挖掘
【C 言专栏】C 语言与机器学习的应用
【5月更文挑战第6天】C语言在机器学习中扮演关键角色,以其高效性、灵活性和可移植性实现底层算法、嵌入式系统和高性能计算。在神经网络、决策树和聚类算法等领域的实现中不可或缺。C语言被用于TensorFlow和OpenCV等知名库的底层,常与C++、Python结合使用。尽管面临开发难度和适应新算法的挑战,但C语言在机器学习领域的价值和潜力将持续展现,为科技进步贡献力量。
【C 言专栏】C 语言与机器学习的应用
|
12天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
12天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
|
24天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
24 1

热门文章

最新文章