首页 - 技术 - 2019 年您必须了解的 10 个机器学习 Python 库

2019 年您必须了解的 10 个机器学习 Python 库

2023-10-03 10:10
在本文中,我们将讨论 Python 中的一些首选库,开发人员可以使用这些库来解析、清理和表示现有应用程序中的数据,从而在应用程序中实现机器学习。 我们将介绍以下10个库: TensorFlow Scikit-Learn 数值模拟 喀拉斯 火炬 光GBM 伊莱5 科学Py 西阿诺 熊猫 Python是最流行、使用最广泛的编程语言之一,并且已经取代了业界许多编程语言。 Python 在开发人员中受欢迎的原因有很多,其中最重要的原因之一是 Python 为用户提供了大量可用的库。 Python 的简单性吸引了许多开发人员创建新的机器学习库。 Python 由于其大量的库而深受机器学习专家的欢迎。 所以我要介绍的第一个库是 TensorFlow。 TensorFlow 什么是 TensorFlow?​ 如果您目前正在使用 Python 进行机器学习项目,那么您可能听说过流行的开源库 TensorFlow。该库由 Google 与 Brain Team 合作开发。谷歌几乎每一个机器学习应用都有 TensorFlow 的影子。 TensorFlow 的工作原理就像一个计算库,用于编写旨在执行大量张量运算的新算法。由于神经网络可以轻松地表示为计算图,因此可以使用 TensorFlow 作为张量运算序列来实现它们。此外,张量是表示数据的 N 维矩阵。 TensorFlow 的特点 TensorFlow 针对速度进行了优化,并利用 XLA 等技术进行快速线性代数运算。​ 反应式构造:使用 TensorFlow,我们可以轻松可视化计算图的每个部分,而使用 NumPy 或 SciKit 时则无法实现这一点。 灵活性:TensorFlow的一个非常重要的特点就是它的运算非常灵活。这意味着它是模块化的,并为您想要独立的部件提供了选项。易于训练:对于分布式计算,可以在CPU和GPU上轻松训练。 并行化神经网络训练:TensorFlow 提供了管道。从某种意义上说,您可以训练多个神经网络和多个 GPU,这使得模型在大型系统上非常高效。 庞大的社区:不用说,由于TensorFlow是Google开发的,所以有一大群软件工程师不断提高TensorFlow的稳定性。 开源:这个机器学习库的最大优点是它是开源的,因此任何人只要有互联网连接就可以使用它。 TensorFlow 用在哪里? 实际上,您每天都在使用 TensorFlow,但 Google 语音搜索或 Google Photos 等应用程序是间接使用的。这些应用程序是使用该库开发的。 TensorFlow 中创建的所有库都是用 C 和 C++ 编写的。然而,它也有一个复杂的 Python 前端。您的 Python 代码将被编译,然后在用 C 和 C++ 构建的 TensorFlow 分布式执行引擎上执行。 TensorFlow 的应用程序数量几乎是无限的,这就是 TensorFlow 的美妙之处。 Scikit-Learn 什么是 Scikit-Learn? Scikit-Learn 是一个与 NumPy 和 SciPy 相关的 Python 库。它被认为是处理复杂数据的首选库之一。这个库正在经历很多变化。其中一项变化是交叉验证功能,它提供了使用多种度量的能力。许多训练方法,例如逻辑回归和最近邻方法,都得到了一些改进。 Scikit-Learn 功能 交叉验证:有多种方法可以测试监督模型对未见过的数据的准确性。 无监督学习算法:Scikit-Learn 提供了大量算法,从聚类、因子分析和主成分分析到无监督神经网络。 特征提取:用于从图像和文本中提取特征(例如词袋)。 Scikit-Learn 在哪里使用? 它包含许多用于实现标准机器学习和数据挖掘任务的算法,例如降维、分类、回归、聚类和模型选择。 数值模拟 什么是 NumPy? NumPy 被认为是 Python 中流行的机器学习库之一。TensorFlow 和其他库在内部使用 NumPy 对张量执行多种操作。数组接口是 NumPy 最好也是最重要的功能。 NumPy 的特点 交互性:NumPy 具有高度交互性且易于使用。 数学:使复杂的数学实现变得非常简单。 直观性:使编码和理解概念变得非常容易。 大量交互:由于广泛使用,有很多开源贡献。 NumPy用在哪里? NumPy 的接口可用于将图像、声波和其他二进制原始流表示为 N 维数组。为了实现这个用于机器学习的库,全栈开发人员了解 NumPy 非常重要。 喀拉斯 什么是 Keras? Keras 被认为是 Python 中最酷的机器学习库之一。它提供了一种更简单的机制来表达神经网络。 Keras 还提供了一些用于编译模型、处理数据集、图形可视化等的最佳实用程序。 在后端,Keras 在内部使用 Theano 或 TensorFlow,但也可以使用一些最流行的神经网络,例如 CNTK。与其他机器学习库相比,Keras 相对较慢。因为它的工作原理是使用后端架构创建计算图,然后利用它来执行操作。然而,所有 Keras 模型都是可移植的。 Keras 的特点 1.Keras在CPU和GPU上均运行流畅。 2.Keras支持几乎所有的神经网络模型,包括全连接、卷积、池化、递归、嵌入式等。此外,这些模型可以组合起来构建更复杂的模型。 3. Keras 本质上是模块化的,具有令人难以置信的表现力、灵活性,并且易于进行创新研究。 4.Keras是一个完全基于Python的框架,可以轻松调试和探索。 Keras 用在哪里? 您已经在与 Keras 开发的功能进行交互:Netflix、Uber、Yelp、Instacart、Zocdoc、Square 等公司都在使用它。 Keras 在以深度学习为产品核心的初创公司中特别受欢迎,也是深度学习研究人员的最爱。 Keras 还被大型科学组织的研究人员采用,特别是 CERN 和 NASA。 Keras 包含许多常见神经网络构建块的实现,例如层、目标、激活函数、优化器以及一系列使图像和文本数据处理变得更容易的工具。此外,Keras还提供了许多预处理的数据集和预训练的模型,例如MNIST、VGG、Inception、SqueezeNet、ResNet等。 火炬 什么是 PyTorch? PyTorch 是最大的机器学习库,允许开发人员利用 GPU 加速来执行张量计算、创建动态计算图并自动计算梯度。此外,PyTorch还提供了丰富的API用于解决神经网络相关的应用问题。 该机器学习库基于 Torch,Torch 是一个用 C 语言实现的开源机器学习库,并用 Lua 进行了包装。这个用Python编写的机器学习库于2017年推出,自推出以来吸引了越来越多的机器学习开发者。 PyTorch 的特点 混合前端:新的混合前端在 Eager 模式(动态图形模式)下提供易用性和灵活性,同时在 C++ 运行时环境中无缝过渡到图形模式,以实现速度、优化和功能。 分布式训练:利用 Python 和 C++ 中对异步执行集合操作和点对点通信的本机支持,优化研究和生产的性能。 Python优先:PyTorch 不与 Python 绑定在单个 C++ 框架中。它专为深度集成到 Python 中而构建,因此可以与 Cython 和 Numba 等流行的库和包一起使用。 库和工具:活跃的研究人员和开发人员社区构建了丰富的工具和库生态系统,用于扩展 PyTorch 并支持从计算机视觉到强化学习等领域的开发。 PyTorch 用在哪里? PyTorch 主要用于自然语言处理等应用。 PyTorch 主要由 Facebook 的人工智能研究小组开发。 Uber 的概率编程“Pyro”软件就是建立在这个基础上的。 PyTorch 在很多方面都超越了 TensorFlow,并且最近受到了广泛关注。 光GBM 什么是 LightGBM Gradient Boosting 是最好、最受欢迎的机器学习库之一,它可以帮助开发人员通过使用重新定义的基本模型和决策树来构建新算法。因此,有专门的库旨在快速有效地实现这种方法。这些库是 LightGBM、XGBoost 和 CatBoost。所有这些库都是竞争对手,可以帮助解决常见问题,并且可以以几乎相似的方式利用。 LightGBM的特点 计算速度快,生产效率高。 直观且易于使用。 比许多其他深度学习库的训练速度更快。 考虑 NaN 值和其他规范值时不会产生错误。 LightGBM用在哪里? 该库提供了高度可扩展、优化且快速的梯度提升实现,这使其在机器学习开发人员中很受欢迎。因为大多数机器学习全栈开发者都是通过使用这些算法赢得机器学习竞赛的。 伊莱5 Eli5是什么? 大多数时候,机器学习模型的预测是不准确的,Python 内置的 Eli5 机器学习库有助于克服这一挑战。它结合了所有机器学习模型的可视化和调试,并跟踪算法的所有工作步骤。 Eli5的特点 Eli5 支持 XGBoost、lighting、scikit-learn 和 sklearn-crfsuite 库。上面提到的所有库都可以用来执行不同的任务。 Eli5用在哪里? 需要在短时间内进行大量计算的数学应用 Eli5 在与其他 Python 包存在依赖关系的情况下发挥着至关重要的作用。 遗留应用程序和在各个领域实施更新的方法 科学Py 什么是 SciPy? SciPy 是一个面向应用程序开发人员和工程师的机器学习库。您需要了解 SciPy 库和 SciPy 堆栈之间的区别。 SciPy 库包含优化、线性代数、积分和统计模块。 SciPy 的特点 SciPy 库的主要特点是它是使用 NumPy 开发的,其数组最大限度地利用了 NumPy。此外,SciPy 使用其特定子模块提供所有有效的数值例程,例如优化、数值积分和许多其他例程。 所有 SciPy 子模块中的所有函数都有详细记录。 SciPy 在哪里使用? SciPy 是一个使用 NumPy 求解数学函数的库。 SciPy 使用 NumPy 数组作为基本数据结构,并附带用于科学编程中各种常见任务的模块。包括线性代数、积分(微积分)、常微分方程求解和信号处理在内的任务都可以使用 SciPy 轻松处理。 西阿诺 什么是 Theano?Theano 是 Python 中的一个计算框架机器学习库,用于计算多维数组。 Theano 的工作原理与 TensorFlow 类似,但效率不如 TensorFlow。因为它无法适应生产环境。 此外,Theano 可以在类似于 TensorFlow 的分布式或并行环境中使用。 Theano的特点 与 NumPy 紧密集成:能够在 Theano 编译的函数中充分使用 NumPy 数组。 GPU 的透明使用:执行数据密集型计算比在 CPU 上快得多。​ 高效的符号微分:Theano 通过一个或多个输入来区分函数。 速度和稳定性优化:即使 x 非常小,也能得到 log(1+x) 的正确答案。这只是 Theano 稳定性的一个例子。 动态 C 代码生成:比以往更快地评估表达式,从而大大提高效率。 广泛的单元测试和自我验证:检测和诊断模型中的多种类型的错误和歧义。 Theano 用在哪里? Theano 表达式的实际语法是符号性的,这对于习惯正常软件开发的初学者来说可能会感到不舒服。具体来说,表达式以抽象的方式定义、编译,然后实际用于计算。 Theano 专为大型神经网络算法深度学习中使用的计算类型而设计。它是最古老的库之一(开发于 2007 年开始),被认为是深度学习研究和开发的行业标准。 Theano 目前已用于多个神经网络项目,并且随着时间的推移,其受欢迎程度不断增加。 熊猫 什么是熊猫? Pandas 是 Python 中的机器学习库,提供高级数据结构和各种分析工具。该库的最大功能之一是能够使用一两个命令转换复杂的数据操作。 Pandas 有许多内置方法用于分组、组合数据、过滤和时间序列功能。所有这些方法都具有出色的速度指标。 熊猫的特点 Pandas 使操作数据的过程变得更加容易。对重新索引、迭代、排序、聚合、连接和可视化等操作的支持是 Pandas 的亮点之一。 熊猫用在哪里? 目前,Pandas 库的版本较少,其中包括数百个新功能、错误修复、增强功能和 API 更改。 Pandas 的改进包括对数据进行分组和排序、为应用方法选择最合适的输出以及为执行自定义类型操作提供支持的能力。其中,数据分析是使用 Pandas 的一大亮点。然而,当与其他库和工具一起使用时,Pandas 确保了高度的功能和良好的灵活性。