在本文中,我们将讨论一些python中的顶级库,开发人员可以使用这些库在现有的应用程序中应用、清洗和表示数据,并进行机器学习研究。
我们将讨论以下10个库:
TensorFlow
Scikit-Learn
Numpy
Keras
PyTorch
LightGBM
Eli5
SciPy
Theano
Pandas
简介
python是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。
python在开发人员中流行的原因有很多。然而,最重要的一点是它有大量的库供用户使用。
python的简单性吸引了许多开发人员为机器学习创建新的库。由于有大量的库,python在机器学习专家中变得非常流行。
所以,这里要介绍的第一个库是TensorFlow。
1.TensorFlow
什么是TensorFlow?
如果你目前正在使用python进行机器学习项目,那么你可能听说过这一个流行的开源库,那就是TensorFlow。
这个库是由Google与BrainTeam合作开发的,几乎每一个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,你使用的GoogleVoiceSearch或GooglePhotos等应用程序都是使用这个库开发的。
在TensorFlow创建的所有库都是用C和C++编写的,但是,它有一个复杂的前端,是用python实现的。你的python代码将被编译,然后在使用C和C++构建的TensorFlow分布式执行引擎上执行。
实际上,TensorFlow的应用是无限的,这就是它美妙的地方。
2.Scikit-Learn
什么是Scikit-Learn?
它是一个与NumPy和SciPy相关联的python库。它被认为是处理复杂数据的最佳库之一。
在这个库中进行了许多修改。其中一个修改是交叉验证特性,它提供了使用多个度量的能力。许多训练方法,如物流回归和最邻近算法,都没有得到什么改善。
Scikit-Learn的特性
交叉验证:有多种方法可以检查不可见数据上受监督模型的准确性。
无监督学习算法:同样,在产品中有大量的算法——从聚类、因子分析、主成分分析到无监督神经网络
特征提取:用于从图像和文本中提取特征(例如一段文字)
ScikitLearn被用在哪里?
它包含许多实现标准机器学习和数据挖掘任务的算法,如降维、分类、回归、聚类和模型选择。
3.Numpy
什么是Numpy?
Numpy被认为是python中最流行的机器学习库之一。
TensorFlow和其他库在内部使用Numpy对tensor执行多个操作。数组接口是Numpy的最佳和最重要的特性。
Numpy的特性
交互性:Numpy非常容易理解和使用
数学性:使复杂的数学实现变得非常简单
直观:真正使编码变得容易,掌握概念也很容易
大量接口:广泛使用,因此有很多开源贡献者
Numpy被用在哪里?
该接口可用于将图像、声音和其他二进制原始流表示为n维实数数组。
机器学习库的实现,拥有Numpy的知识对于全栈开发人员来说是很重要的。
4.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也是深度学习研究人员的最爱。大型科学组织,特别是CERNandNASA的研究人员尤其偏爱Keras。
5.PyTorch
什么是PyTorch?
PyTorch是最大的机器学习库,它允许开发人员以GPU的加速度执行tensor计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch还提供了丰富的API来解决与神经网络相关的应用程序问题。这个机器学习库是基于Torch的,它是一个用C语言实现的开源机器库,在Lua中进行了封装。
此机器学习库(python)于年推出,自其问世以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。
PyTorch的特性
端到端Hybrid
一种新的混合前端,提供了易于使用和具有灵活性的EagerMode,同时为了速度,无缝过渡到graphmode,在C++运行环境中非常实用。
分布式训练
利用本地支持异步执行集体操作和点对点通信(Python和C++),优化研究和生产中的性能。
python优先
PyTorch不是一个将python绑定到C++框架的工具。它的构建是为了深入集成到python中,以便可以与流行的库和包(如Cython和Numba)一起使用。
库和工具
一个由研究人员和开发人员组成的活跃社区已经建立了一个丰富的工具和库的生态系统,用于扩展PyTorch并支持从计算机视觉到强化学习等领域的开发。
PyTorch被用在哪里?
PyTorch主要用于自然语言处理等领域的应用程序。
它主要是由Facebook的人工智能研究小组开发的,Uber的概率编程软件「Pyro」就建立在它的基础之上。
PyTorch在很多方面都优于TensorFlow,最近它得到了很多