访问量: 262 次浏览

机器学习或 ML 由 Arthur Samuel 于 1959 年首次提出, 它是人工智能的一部分,赋予机器学习并使其实现自我改进的能力。
通过机器学习,开发人员可以训练机器从自己的经验中学习, 而无需显式编程来执行上述操作。 为了使用机器学习完成如此多的任务, 需要拥有一系列框架、工具(套件)、模块、库等。 我们将在这里重点关注机器学习(ML)库。
通常,机器学习库是可供随时使用的函数和例程的编译。 一组强大的库是开发人员研究和编写复杂程序、 同时避免编写大量代码的工具库中不可或缺的一部分。
库使开发人员免于一遍又一遍地编写冗余代码。 此外,还有各种各样的库来处理不同的事情。 例如,有文本处理库、图形库、数据操作和科学计算等。
随着机器学习不断为人类带来新的可能性并吸引新人, 数百个机器学习库也在积极开发。 接下来, 我们将讨论机器学习爱好者和专业人士最青睐的其中 10 个最佳机器学习库, 排名不分先后。
PS:本文仅限于解释 ML 库! 因此,不包含模块和软件包。 例如,statsmodels是实现统计学习算法和时间序列建模的一种极其有效的 ML 选项; 但是,它是一个软件包,而不是一个库。

Armadillo 使用 C++ 编程语言实现, 是一个用于实现科学计算目的的线性代数库。 除了机器学习之外, Armadillo 还可用于:
Armadillo 采用延迟求值方法, 该方法通过模板元编程实现, 用于将多个操作组合成一个统一的操作, 这减少甚至消除了对临时变量的需求。
Armadillo 库提供类似于 MATLAB 的功能和高级语法。 该库适合用 C++ 开发ML 算法。 它还能够快速将研究代码实现到可用于生产的环境中。
亮点
通过与ARPACK、ATLAS和LAPACK集成,支持多种矩阵分解。

FANN 是Fast A rtificial Neural N etwork的缩写。 顾名思义, 这个开源机器学习库可以帮助开发神经网络, 具体来说是多层前馈人工神经网络。
FANN 用 C 编程语言编写, 支持完全连接和稀疏连接的神经网络。 自 2003 年问世以来, 该机器学习库已广泛应用于以下研究:
FANN 是一个极其易于使用的库, 并附带详尽、深入的文档。 它适用于反向传播训练以及演化拓扑训练。
亮点
能够将训练好的 ANN 存储为 .net 文件。 这样可以更快地保存和加载 ANN 以供将来使用。 支持单层和多层网络的跨平台执行。

Keras 是一个开源库, 可在 CPU 和 GPU 上高效运行。 它用于深度学习, 特别是神经网络。 这个流行的 ML 库与神经网络的构建块配合使用, 例如:
除了标准神经网络之外, Keras 还支持卷积和循环神经网络。 ML 库还包含大量用于处理图像和文本图像的功能。
亮点
可以在其上运行的如下:
Theano
支持对深度神经网络进行快速实验

Matplotlib 是一个 ML 库, 用于通过 2D 绘图生成各种格式的可发布的图形、图像, 仅使用几行代码, Matplotlib 库就可以生成详细的高质量数据:
尽管 Matplotlib 相当用户友好, 但习惯了 MATLAB 界面的用户会发现它更容易上手, 尤其是使用 pyplot 模块时。 ML 库提供了一个面向对象的 API, 使用标准 GUI 工具包(如 GTK+、Qt 和 wxPython)在应用程序中嵌入图形和图表。
亮点

mlpack 是基于流行的线性代数库 Armadillo 构建的 ML 库, 它强调易用性、可扩展性和速度。 mplack 库的主要目的是提供一种可扩展、快速且灵活的 ML 算法实现方法。
尽管 mlpack 是为 C++ 设计的, 但它也适用于 Go、Julia、Python 和 R 编程语言。 它还具有简单的命令行程序和 C++ 类, 可以集成到大型 ML 解决方案中。
亮点

NLTK 代表自然语言工具。 顾名思义,它是一个用于 NLP 任务的 Python 库, 例如语言建模、命名实体识别和神经机器翻译。 机器学习库满足所有文本处理需求,包括:
有趣的是,NLTK 不仅仅是一个 ML 库, 而是一个库(和程序)的集合。
亮点

NumPy 是Numerical Python的缩写。 该名字清楚地表明它是一个用于计算的库。 使用基于 Python的库可以让开发人员在涉及繁重矩阵运算的科学计算中节省大量时间。
NumPy 库利用一类特殊的数组(称为 Numpy 数组), 这些数组可以在短短几毫秒内执行大量基于矩阵的计算。 这是由于 Numpy 数组在 C 编程语言中的实现而实现的。
由于上述原因, NumPy 已成为机器学习, 尤其是自然语言处理最受欢迎的库/包之一。
亮点

OpenNN 是一个开源机器学习库, 它利用 ML 技术解决各个领域的数据挖掘和预测分析问题。 该库已用于处理化学、能源和工程领域的问题。
使用 OpenNN 的主要优势是其高性能。 这归功于使用C++ 编程语言开发的库。 ML 库具有复杂的算法和实用程序来完成分类、预测、回归等。
亮点

当需要处理大量表格数据时, pandas 是首选的机器学习库。 Pandas 之于 Python 就像 Microsoft Excel 之于 Windows。 ML 库将大型复杂计算所需的工作量缩减为仅几行代码。
此外,pandas 具有一长串预先存在的命令, 这将使 ML 开发人员无需添加各种数学运算的代码。 除了数据操作之外,Pandas 库还有助于转换和可视化数据。 pandas 库利用两种主要类型的数据结构:
使用这种组合可以让开发人员处理属于工程、金融、科学、统计等领域的广泛数据需求和场景。 数据科学家依靠 pandas 来减少编写样板代码的混乱, 并将更多精力放在与手头的表格数据相关的实际问题解决上。
亮点

无论是决策树、线性回归、逻辑回归还是 SVM, 只要说得出问题,Scikit-Learn 都能满足要求。 它是用于构建机器学习算法的最流行的机器学习库之一。 Scikit-Learn 还具有以下功能:
Scikit-Learn 用 C 和 Python 编写, 拥有一个不断壮大的忠诚社区, 其中包括世界各地的程序员、机器学习爱好者和 IT 专业人士。 它建立在 NumPy 和 SciPy 之上, 这两个库是用于科学计算的最流行的 ML 库。
Scikit-learn 库的唯一问题是它无法为针对大规模生产环境应用的分布式计算提供良好的支持。 希望在即将发布的流行 ML 库中能够修复此问题。
亮点
无论开发人员从事何种编程语言或领域, 学习使用库都很重要。 这样做有助于简化事情并减少繁琐的工作。