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

简介:

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

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

到底学习哪个编程语言

答案可能会让你惊讶:对高手来说,这关系不大。只要你了解所选语言的机器学习库和工具,语言本身其实没那么重要。相当多的机器学习库支持多种编程语言。当然,取决于你在公司中的开发角色和你需要实现的任务,有些语言、库和工具会比其他的更高效。下面,我们来看看六大主流机器学习语言——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+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
307 8
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
708 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
10月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
254 0
|
11月前
|
存储 分布式计算 算法
企业级推荐开发平台 PAI-Rec
本文介绍了企业推荐系统的关键技术和解决方案。主要内容分为四部分:1) 推荐系统面临的挑战,如数据治理和算法优化;2) 提高开发效率的解决方案,通过配置化和自动化减少重复工作;3) 高性能推荐算法和推理服务,包括GPU优化和特征组合;4) 高效特征管理平台PAI FeatureStore,支持离线和实时特征处理。文中还提到了EasyRecTorch框架,用于加速训练和推理,并分享了如何通过这些工具提升推荐系统的性能和降低成本。
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
364 1
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
274 2
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
132 1
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
147 1
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
256 2