2021不可不知的前10个Python机器学习库

wx搜索“拓扑软件”,get各大厂精品PPT

Python广泛应用于各种场景,包含非常丰富的第三方库,作为一个Python开发者,必须对最重要的库有足够的认知。接下来的部分就会向你展示,Python中最应该掌握的十大机器学习库。

TensorFlow

Scikit-Learn

Numpy

Keras

PyTorch

LightGBM

Eli5

SciPy

Theano

Pandas

简介

Python是目前最流行的编程语言之一,并在工业界替代了很多其他的编程语言。

Python如此流行的原因有很多,其中一个原因就是它拥有非常多功能强大的第三方库,且易于使用。

Python如此流行的原因有几点:

Python有很多三方库。

Python的简洁和易用使得初学者容易上手。

Python能够从开发、部署到维护,全方位地提升效率。

可移植性很强。

Python的编程语言简单易学,相比C、Java和C++而言,属于高级语言。

因此,只需要几行代码就能构成一个新的应用程序。

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

所以,本文首先要介绍的第一个库就是TensorFlow。

TensorFlow

什么是TensorFlow?

如果你现在用Python来构建一个机器学习项目,那么你可能听过TensorFlow这个库。

这个库是Google与Brain Team合作开发的。TensorFlow几乎是每个用于机器学习的Google应用程序的一部分。

TensorFlow就像一个计算库一样,用于编写涉及大量Tensor(张量)运算的新算法,因为神经网络可以轻松地表达为计算图,因此可以使用TensorFlow将其作为Tensor上的一系列运算来实现。另外,张量是代表您数据的N维矩阵。

TensorFlow的特性

TensorFlow针对速度进行了优化,它利用XLA之类的技术进行快速线性代数运算。

1. 响应式构造

借助TensorFlow,我们可以轻松地可视化计算图的每个部分,这在使用Numpy或SciKit时是不可取的。

2. 灵活性

Tensorflow功能非常重要的一项就是它的可操作性非常强,这意味着它具有模块化以及您想要使其独立的部分,它提供了这一选择。

3. 容易训练

它可以轻松地在CPU和GPU上进行分布式训练。

4. 并行神经网络训练

TensorFlow提供了pipeline,意味着您可以训练多个神经网络和多个GPU,这使得模型在大规模系统上非常有效。

5. 庞大的社区

不用说,如果它是由Google开发的,那么已经有一个庞大的软件工程师团队,他们会不断进行稳定性改进。

6. 开源

这个机器学习库最棒的地方就是开源,只要有网络,每个人都可以使用它。

TensorFlow的用途?

您每天都在使用TensorFlow,但是是间接地,比如使用Google语音搜索或Google相册之类的应用程序,这些是TensorFlow的应用程序。

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

TensorFlow的应用程序数量实际上是无限的,这就是TensorFlow的优点。

Scikit-Learn

什么是Scikit-learn?

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

这个库做了很多改进,一是交叉验证功能,提供使用多个指标的能力。许多训练方法,如逻辑回归和最近邻,都得到了一些小小的改进。

Scikit-Learn的特性

1. 交叉验证:有多种方法可以检查监督模型对未知数据的准确度。

2. 无监督学习算法:从聚类、因子分析、主成分分析到无监督神经网络。

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

什么情况下使用Scikit-Learn?

它包含大量用于实现标准机器学习和数据挖掘任务的算法,例如降维、分类、回归、聚类和模型选择。在完成这些任务时,我们可以使用Scikit-Learn。

Numpy

什么是Numpy?

Numpy 被认为是 Python 中最受欢迎的机器学习库之一。

TensorFlow和其他库在内部使用Numpy对张量执行多种操作。数组接口是 Numpy 最好也是最重要的特性。

Numpy的特性

交互性:Numpy 具有很好的交互性且易于使用。

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

直观:使编码变得非常容易,并且很容易掌握概念。

大量学习资料:广泛使用,因此有很多开源贡献。

Numpy的用途?

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

为了应用这个可用于机器学习的库,了解 Numpy 对全栈开发人员很重要。

Keras

什么是Keras?

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

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

Keras的特性

它在GPU和CPU上都能运行流畅。

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

Keras 本质上是模块化的,具有令人难以置信的表现力、灵活性,并且适合创新研究。

Keras 是一个完全基于 Python 的框架,可以轻松调试和探索。

什么情况下使用Keras?

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

Keras 包含许多常用神经网络构建块的实现,例如层、目标、激活函数、优化和大量工具,可以更轻松地处理图像和文本数据。

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

Keras 也是深度学习研究人员的最爱,排名第二。Keras 也被大型科学组织的研究人员采用,特别是 CERN 和 NASA。

PyTorch

什么是PyTorch?

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

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

这个Python机器学习库于2017年推出,自推出以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。

PyTorch的特性

混合前端

新的混合前端在Eager模式下具备易用性和灵活性,同时在C++运行时环境中无缝过渡到图形模式以实现速度、优化和功能。

分布式训练

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

Python优先

PyTorch不是Python绑定到C++整体框架中,它旨在与Python深度集成,因此可以与流行的库和包(如Cython和Numba)一起使用。

库和工具

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

PyTorch的应用?

PyTorch 主要用于自然语言处理等应用。

它主要由 Facebook 的人工智能研究小组开发,Uber 用于概率编程的“Pyro”软件是基于它构建的。

PyTorch 在多个方面都优于 TensorFlow,并且在最近受到了很多关注。

LightGBM

什么是LightGBM?

Gradient Boosting是最好和最受欢迎的机器学习库之一,它通过使用重新定义的基本模型和决策树来帮助开发人员构建新算法。因此,有一些特殊的库可用于快速有效地实现此方法。

这些库是LightGBM、XGBoost和CatBoost。所有这些库都有助于解决常见问题,并且使用方法相似。

LightGBM的特性

计算非常快,保证了生产效率。

直观,因此使其用户友好。

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

考虑NaN值和其他规范值时不会产生错误。

LightGBM的应用?

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

Eli5

什么是Eli5?

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

Eli5的特性

Eli5还支持XGBoost、Lightning、scikit-learn和sklearn-crfsuite等其他库。

Eli5的应用?

Eli5适合需要在短时间内进行大量计算的数学应用。

Eli5 在与其他Python包存在依赖关系的情况下起着至关重要的作用。

在各个领域实施原有应用程序的新方法。

SciPy

什么是SciPy?

SciPy是一个面向应用程序开发人员和工程师的机器学习库。但是,您仍然需要了解SciPy库和SciPy堆栈之间的区别。SciPy库包含用于优化、线性代数、积分和统计的模块。

SciPy的特性

SciPy 库的主要特点是它是使用NumPy开发的,它的数组充分利用了NumPy的数组。

此外,SciPy使用其特定的子模块提供了所有有效的数值例程,如优化、数值积分和许多其他程序。

SciPy的所有子模块中的所有功能都有详细记录。

SciPy的应用?

SciPy是一个使用NumPy来解决数学函数的库。SciPy使用NumPy数组作为基本数据结构,并带有各种用于科学编程中常用任务的模块。

SciPy可以轻松执行包括线性代数、积分(微积分)、常微分方程求解和信号处理在内的任务。

Theano

什么是Theano?

Theano是Python中的计算框架机器学习库,用于计算多维数组。Theano的工作原理与TensorFlow类似,但不如TensorFlow高效。因为它无法适应生产环境。

此外,Theano还可以用于分布式或并行环境。

Theano的特性

与NumPy的紧密集成——能够在 Theano 编译的函数中完全使用 NumPy 数组。

GPU 的使用——执行数据密集型计算任务的速度比在 CPU 上快得多。

高效的符号微分——Theano可对具有一个或多个输入的函数进行导数。

速度和稳定性优化 - 即使x非常小,也能得到log(1+x)的正确答案。这只是展示 Theano 稳定性的示例之一。

动态生成C代码 - 比以往任何时候都更快地评估表达式,从而大大提高效率。

广泛的单元测试和自我验证——检测和诊断模型中的多种类型的错误和歧义。

什么时候使用Theano?

Theano表达式的实际语法是象征性的,对于习惯于正常软件开发的初学者来说,这可能会令人反感。具体来说,表达式是在抽象意义上定义的,编译后实际用于进行计算。

它专门处理深度学习中大型神经网络算法的计算类型。它是同类库中最早的一个(开发始于2007年),并且是深度学习研究和开发的行业标准。

Theano是当今多个神经网络项目的强项,Theano的受欢迎程度只会随着时间的推移而增长。

Pandas

什么是Pandas?

Pandas是Python中的机器学习库,它提供了高级数据结构和多种分析工具。该库的一大特色是能够使用一两个命令将复杂的操作转换为数据。Pandas有许多用于分组、组合数据和过滤的内置方法,以及时间序列功能。

Pandas的特性

Pandas确保操作数据的整个过程会更容易。支持重新索引、迭代、排序、聚合、连接和可视化等操作是 Pandas 的亮点之一。

Pandas的应用?

目前,包含数百个新功能、错误修复、API增强的Pandas库版本较少。pandas的改进在于其对数据进行分组和排序的能力,为apply方法选择最适合的输出,并支持自定义类型的操作。

在Pandas的使用方面,数据分析是最重要的。但是,Pandas与其他库和工具一起使用时可确保高功能性和良好的灵活性。

 • END • 

文稿 | 全栈架构师

编辑 |全栈架构师

你可能感兴趣的:(2021不可不知的前10个Python机器学习库)