您所在的位置:主页 > 华财之声 > 科技 > 正文

2019 必知的 10 大顶级 python 库

2019-09-10 10:56:05 来源: 阅读:1

雷锋网 AI 科技评论按,作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python。在本文中,我们将讨论一些 python 中的顶级库,开发人员可以使用这些库在现有的应用程序中应用、清洗和表示数据,并进行机器学习研究。

我们将讨论以下 10 个库:

  1. TensorFlow

  2. Scikit-Learn

  3. Numpy

  4. Keras

  5. PyTorch

  6. LightGBM

  7. Eli5

  8. SciPy

  9. Theano

  10. Pandas

2019 必知的 10 大顶级 python 库

简介

python 是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。

python 在开发人员中流行的原因有很多。然而,最重要的一点是它有大量的库供用户使用。

python 的简单性吸引了许多开发人员为机器学习创建新的库。由于有大量的库,python 在机器学习专家中变得非常流行。

所以,这里要介绍的第一个库是 TensorFlow。

1.TensorFlow

2019 必知的 10 大顶级 python 库

什么是 TensorFlow?

如果你目前正在使用 python 进行机器学习项目,那么你可能听说过这一个流行的开源库,那就是 TensorFlow。

这个库是由 Google 与 Brain Team 合作开发的,几乎每一个 Google 的机器学习应用程序都用到了 TensorFlow。

TensorFlow 就像一个计算库,用于编写涉及大量 tensor 操作的新算法。由于神经网络可以很容易地表示为计算图,因此它们可以使用 TensorFlow 作为 tensor 的一系列操作来实现。另外,tensor 是表示数据的 n 维矩阵。

TensorFlow 的特征

1.快速响应的结构

使用 TensorFlow,我们可以很容易地可视化图的每个部分,这在使用 Numpy 或 SciKit 时是做不到的。

2.灵活

TensorFlow 的一个非常重要的特性是,它的操作非常灵活。这意味着它具有模块性,可以让你把希望独立出来的部分分出来

3.容易训练

对于分布式计算来说,它很容易在 CPU 和 GPU 上训练。

4.并行神经网络训练

TensorFlow 提供了管道流,从这个意义上说,你可以训练多个神经网络和多个 GPU,这使得模型在大型系统上非常有效。

5.大型社区

不用说,它是由 Google 开发的,已经有一个庞大的软件工程师团队在不断地改进稳定性。

6.开源

这个机器学习库最好的一个特点是,它是开源的,任何人只要有连接互联网就可以使用它。

TensorFlow 被用在哪里?

你每天都在使用 TensorFlow,你使用的 Google Voice Search 或 Google Photos 等应用程序都是使用这个库开发的。

在 TensorFlow 创建的所有库都是用 C 和 C++编写的,但是,它有一个复杂的前端,是用 python 实现的。你的 python 代码将被编译,然后在使用 C 和 C++构建的 TensorFlow 分布式执行引擎上执行。

实际上,TensorFlow 的应用是无限的,这就是它美妙的地方。

2.Scikit-Learn

2019 必知的 10 大顶级 python 库

什么是 Scikit-Learn?

它是一个与 NumPy 和 SciPy 相关联的 python 库。它被认为是处理复杂数据的最佳库之一。

在这个库中进行了许多修改。其中一个修改是交叉验证特性,它提供了使用多个度量的能力。许多训练方法,如物流回归和最邻近算法,都没有得到什么改善。

Scikit-Learn 的特性

  1. 交叉验证:有多种方法可以检查不可见数据上受监督模型的准确性。

  2. 无监督学习算法:同样,在产品中有大量的算法——从聚类、因子分析、主成分分析到无监督神经网络

  3. 特征提取:用于从图像和文本中提取特征(例如一段文字)

Scikit Learn 被用在哪里?

它包含许多实现标准机器学习和数据挖掘任务的算法,如降维、分类、回归、聚类和模型选择。

3.Numpy

2019 必知的 10 大顶级 python 库

什么是 Numpy?

Numpy 被认为是 python 中最流行的机器学习库之一。

TensorFlow 和其他库在内部使用 Numpy 对 tensor 执行多个操作。数组接口是 Numpy 的最佳和最重要的特性。

Numpy 的特性

  1. 交互性:Numpy 非常容易理解和使用

  2. 数学性:使复杂的数学实现变得非常简单

  3. 直观:真正使编码变得容易,掌握概念也很容易

  4. 大量接口:广泛使用,因此有很多开源贡献者

Numpy 被用在哪里?

该接口可用于将图像、声音和其他二进制原始流表示为 n 维实数数组。

机器学习库的实现,拥有 Numpy 的知识对于全栈开发人员来说是很重要的。

4.Keras

2019 必知的 10 大顶级 python 库

什么是 Keras?

Keras 被认为是 python 中最酷的机器学习库之一。它提供了一种更容易表达神经网络的机制。Keras 还为编译模型、处理数据集、图形可视化等提供了一些最佳实用程序。

在后端,Keras 在内部使用 Theano 或 TensorFlow。也可以使用一些最流行的神经网络,如 CNTK。当我们将其与其他机器学习库进行比较时,Keras 的速度相对较慢,因为它使用后端基础设施创建计算图,然后利用它执行操作。Keras 的所有模型都很轻简。

Keras 的特征

  • 它在 CPU 和 GPU 上都能顺利运行。

  • Keras 支持几乎所有的神经网络模型——全连接、卷积、池化、循环、嵌入等。此外,这些模型可以结合起来构建更复杂的模型。

  • Keras 本质上是模块化的,具有难以置信的表现力、灵活性和创新性研究的能力。

  • Keras 是一个完全基于 python 的框架,它使调试和探索变得容易。

Keras 被用在哪里?

你已经在不断地与使用 Keras 构建的产品进行交互—Netflix、Uber、Yelp、Instacart、Zocdoc、Square 和许多其他公司都在使用它。它在初创企业中尤其受欢迎,初创企业将深度学习放在其产品的核心位置。

Keras 包含许多常用的神经网络构建块的实现,例如层、目标、激活函数、优化器和一系列工具,以使图像和文本数据的处理更加容易。

此外,它还提供许多预处理的数据集和预训练的模型,如 MNIST, VGG, Inception, SqueezeNet, ResNet 等。

Keras 也是深度学习研究人员的最爱。大型科学组织,特别是 CERN and NASA 的研究人员尤其偏爱 Keras。

5.PyTorch

2019 必知的 10 大顶级 python 库

什么是 PyTorch?

PyTorch 是最大的机器学习库,它允许开发人员以 GPU 的加速度执行 tensor 计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch 还提供了丰富的 API 来解决与神经网络相关的应用程序问题。

这个机器学习库是基于 Torch 的,它是一个用 C 语言实现的开源机器库,在 Lua 中进行了封装。

此机器学习库(python)于 2017 年推出,自其问世以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。

PyTorch 的特性

  • 端到端 Hybrid

一种新的混合前端,提供了易于使用和具有灵活性的 Eager Mode,同时为了速度,无缝过渡到 graph mode,在 C++运行环境中非常实用。

  • 分布式训练

利用本地支持异步执行集体操作和点对点通信(Python 和 C++),优化研究和生产中的性能。

  • python 优先

PyTorch 不是一个将 python 绑定到 C++框架的工具。它的构建是为了深入集成到 python 中,以便可以与流行的库和包(如 Cython 和 Numba)一起使用。

  • 库和工具

一个由研究人员和开发人员组成的活跃社区已经建立了一个丰富的工具和库的生态系统,用于扩展 PyTorch 并支持从计算机视觉到强化学习等领域的开发。

PyTorch 被用在哪里?

PyTorch 主要用于自然语言处理等领域的应用程序。

它主要是由 Facebook 的人工智能研究小组开发的,Uber 的概率编程软件「Pyro」就建立在它的基础之上。

PyTorch 在很多方面都优于 TensorFlow,最近它得到了很多关注。

6.LightGBM

2019 必知的 10 大顶级 python 库

什么是 LightGBM?

梯度增强是最好的和最流行的机器学习(ML)库之一,它可以帮助开发人员使用重新定义的基本模型,即决策树来构建新的算法。因此,有专门的库可以快速有效地实现这种方法。

这些库包括 LightGBM, XGBoost 和 CatBoost。这些库之间存在相互竞争的关系,它们都有助于解决常见问题,可以以几乎相似的方式使用。

LightGBM 的特点

  • 计算速度快,生产效率高。

  • 直观,易于使用。

  • 比其他许多深度学习库更快地训练。

  • 在遇到 NaN 值和其他规范值时不会产生错误。

LightGBM 被用在哪里?

这个库提供了高度可扩展、优化和快速的梯度增强实现,这使得它在机器学习开发人员中很受欢迎。大多数机器学习全栈开发人员通过使用这些算法赢得了机器学习竞赛。

7.Eli5

2019 必知的 10 大顶级 python 库

什么是 Eli5?

通常,机器学习模型预测的结果并不准确,python 内置的机器学习库 Eli5 有助于克服这一挑战。它是可视化和调试所有机器学习模型的组合,并跟踪算法的所有工作步骤。

Eli5 的特点

此外,Eli5 还支持其他库,包括 xgboost、lightning、scikit-learn 和 sklearn-crfsite。所有上述库中额每一个都可以执行不同的任务。

Eli5 被用在哪里?

  • 在短时间内需要进行大量计算的数学应用

  • Eli5 在和其他 Python 包存在依赖关系的情况下发挥着至关重要的作用

  • 在各个领域的传统应用程序实现新方法

8.SciPy


推荐阅读:叶紫