在本文中,我们将讨论Python中的一些顶级库,开发人员可以使用这些库来编写,清理和表示数据,并在现有应用程序中实现机器学习。
我们将介绍以下10个库:
TensorFlow
Scikit-Learn
Numpy
Keras
PyTorch
LightGBM
Eli5
SciPy
Theano
Panda
介绍
Python是最流行和最广泛使用的编程语言之一,已经取代了业界许多编程语言。
Python在开发人员中很受欢迎的原因有很多。但是,其中最重要的一个是用户可以使用的大量库。
Python的简单性吸引了许多开发人员为机器学习创建新的库。由于庞大的库集合,Python在机器学习专家中变得非常流行。
所以,第一个库是TensorFlow。
TensorFlow
什么是TensorFlow?
如果您目前正在使用Python进行机器学习项目,那么您可能已经听说过这个流行的开源库,即TensorFlow。
该库是由Google与Brain Team合作开发的。TensorFlow几乎在每个Google应用程序中用于机器学习。
TensorFlow的工作方式类似于编写涉及大量张量操作的新算法的计算库。由于神经网络可以很容易地表示为计算图形,因此它们可以使用TensorFlow作为Tensors上的一系列操作来实现。此外,张量是表示数据的N维矩阵。
TensorFlow的特点
TensorFlow针对速度进行了优化,它利用XLA等技术实现快速线性代数运算。
1.响应式构建
使用TensorFlow,我们可以轻松地可视化图形的每个部分,这在使用Numpy或SciKit时不是一个选项。
2.灵活
其中一个非常重要的Tensorflow功能是它的可操作性非常灵活,这意味着它具有模块化,并且对于您想要独立的部分,它为您提供了这一选择。
3.易于训练
它可以在CPU和GPU上轻松训练,用于分布式计算。
4.并行神经网络训练
TensorFlow提供流水线操作,从某种意义上说,您可以训练多个神经网络和多个GPU,这使得模型在大规模系统上非常高效。
5.大型社区
毋庸置疑,如果它是由谷歌开发的,那么已经有一大批软件工程师不断致力于稳定性改进。
6.开源
关于这个机器学习库的最好的事情是它是开源的,所以只要有互联网连接,任何人都可以使用它。
TensorFlow在哪里使用?
您每天都在使用TensorFlow,但间接使用Google语音搜索或Google相册等应用。这些应用程序是使用此库开发的。
在TensorFlow中创建的所有库都是用C和C ++编写的。但是,它有一个复杂的Python前端。您的Python代码将被编译,然后在使用C和C ++构建的TensorFlow分布式执行引擎上执行。
TensorFlow的应用数量实际上是无限的,这就是TensorFlow的美妙之处。
Scikit-Learn
什么是Scikit-Learn?
它是一个与NumPy和SciPy相关联的Python库。它被认为是处理复杂数据的最佳库之一。
这个库中有很多变化。一种修改是交叉验证功能,可以使用多个指标。物流回归和最近邻居等许多培训方法都得到了一些改进。
Scikit-Learn的特点
1.交叉验证:有多种方法可以检查监督模型对看不见的数据的准确性。
2.无监督学习算法:同样,在提供中有大量的算法 - 从聚类,因子分析和主成分分析到无监督神经网络。
3.特征提取:用于从图像和文本中提取特征(例如,词袋)
Scikit-Learn在哪里使用?
它包含大量用于实现标准机器学习和数据挖掘任务的算法,如降低维度,分类,回归,聚类和模型选择。
NumPy
什么是Numpy?
Numpy被认为是Python中最受欢迎的机器学习库之一。
TensorFlow和其他库在内部使用Numpy在Tensors上执行多个操作。数组接口是Numpy的最佳和最重要的功能。
Numpy的特点
交互式: Numpy非常具有交互性且易于使用
数学:使复杂的数学实现变得非常简单
直观:使编码变得简单易懂并且理解概念很容易
大量的交互:广泛使用,因此有很多开源贡献
Numpy在哪里使用?
该界面可用于将图像,声波和其他二进制原始流表达为N维中的实数数组。
为了实现这个用于机器学习的库,了解Numpy对于全栈开发人员来说非常重要。
Keras
什么是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也是深度学习研究人员的最爱,排在第2位。Keras也被大型科学组织的研究人员采用,特别是CERN和NASA。
PyTorch
什么是PyTorch?
PyTorch是最大的机器学习库,允许开发人员通过GPU加速执行张量计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch还提供丰富的API,用于解决与神经网络相关的应用问题。
这个机器学习库基于Torch,它是一个用C语言实现的开源机器库,带有Lua中的包装器。
这个用Python的机器库于2017年推出,自成立以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。
PyTorch的特点
Hybrid Front-End
新的混合前端在急切模式下提供易用性和灵活性,同时无缝转换到图形模式,以便在C ++运行时环境中实现速度,优化和功能。
分布式训练
通过利用对Python和C ++可访问的集合操作和对等通信的异步执行的本机支持,优化研究和生产中的性能。
Python
PyTorch不是Python绑定到单片C ++框架。它是为了深入集成到Python中而构建的,因此它可以与流行的库和Cython和Numba等软件包一起使用。
库和工具
一个活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统,用于扩展PyTorch并支持从计算机视觉到强化学习等领域的开发。
PyTorch在哪里使用?
PyTorch主要用于自然语言处理等应用程序。
它主要由Facebook的人工智能研究小组开发,而优步的“Pyro”软件则用于概率编程。
PyTorch在很多方面都超越了TensorFlow,并且最近几天引起了很多关注。
LightGBM
什么是LightGBM?
Gradient Boosting是最好的和最流行的机器学习(ML)库之一,它通过使用重新定义的基本模型和决策树来帮助开发人员构建新算法。因此,有专门的库可以快速有效地实现此方法。
这些库是LightGBM,XGBoost和CatBoost。所有这些库都是有助于解决常见问题的竞争对手,可以几乎以类似的方式使用。
LightGBM的特点
非常快速的计算确保了高生产效率。
直观,因此使用户友好。
比许多其他深度学习库更快的培训。
当您考虑NaN值和其他规范值时,不会产生错误。
LightGBM在哪里使用?
该库提供高度可扩展,优化和快速的梯度增强实现,这使其在机器学习开发人员中很受欢迎。因为大多数机器学习全栈开发人员通过使用这些算法赢得了机器学习竞赛。
Eli5
什么是Eli5?
大多数情况下,机器学习模型预测的结果并不准确,Eli5机器学习库内置Python有助于克服这一挑战。它是可视化和调试所有机器学习模型的组合,并跟踪算法的所有工作步骤。
Eli5的特点
此外,Eli5支持其他库XGBoost,闪电,scikit-learn和sklearn-crfsuite库。所有上述库可用于使用它们中的每一个执行不同的任务。
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还可用于与TensorFlow类似的分布式或并行环境。
Theano的特点
与NumPy紧密集成 - 能够在Theano编译的函数中使用完全NumPy数组。
透明使用GPU - 比在CPU上更快地执行数据密集型计算。
高效的符号区分 - Theano通过一个或多个输入为您的函数提供衍生工具。
速度和稳定性优化 -
log(1+x)
即使x
非常小,也能获得正确的答案。这只是展示Theano稳定性的一个例子。动态C代码生成 - 比以前更快地评估表达式,从而大大提高了效率。
广泛的单元测试和自我验证 - 检测和诊断模型中的多种类型的错误和模糊。
Theano在哪里使用?
Theano表达式的实际语法是象征性的,这对于习惯于正常软件开发的初学者来说可能是不合适的。具体来说,表达式在抽象意义上定义,编译,后来实际用于进行计算。
它专门用于处理深度学习中使用的大型神经网络算法所需的计算类型。它是同类中最早的图书馆之一(2007年开始开发),被认为是深度学习研究和开发的行业标准。
Theano今天被用于多个神经网络项目,而Theano的受欢迎程度只会随着时间的推移而增长。
Pandas
什么是Pandas?
Pandas是Python中的机器学习库,提供高级数据结构和各种分析工具。该库的一个重要特性是能够使用一个或两个命令将复杂操作与数据进行转换。Pandas有许多内置的分组方法,包括数据,过滤以及时间序列功能。 所有这些都是出色的速度指标。Pandas的特点
Pandas确保操作数据的整个过程更容易。Pandas的功能亮点包括支持重新索引,迭代,排序,聚合,连接和可视化等操作。Pandas在哪里使用?
目前,Pandas库的发布数量较少,其中包括数百个新功能,错误修复,增强功能和API更改。Pandas的改进是它能够对数据进行分组和排序,为所应用的方法选择最适合的输出,并为执行自定义类型操作提供支持。 在使用Pandas时,数据分析是其中之一。但是当与其他库和工具一起使用时,Pandas可确保高功能性和灵活性。 希望这篇文章可以帮助您开始学习Python中常用的库。长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢