找回密码
 立即注册
搜索

十大开发必备的Python库,让机器学习更简单

来源:51CTO官微

ID:weixin51cto
作者:Sayantini Deb




如今,Python已是盛行、且运用广泛的编程言语之一,它曾经取代了业界许多编程言语。Python备受开发人员欢迎的一项次要缘由是,它可以为用户提供大量可供运用的库集合。
在本文中,我们将和您讨论Python中的一些库。开发人员可以运用它们来编写、清算和表示数据,并且可以在现有的各种运用程序中完成机器学习的效果。它们分别是:
TensorFlow
Scikit-Learn
NumPy
Keras
PyTorch
LightGBM
Eli5
SciPy
Theano
Pandas

01

TensorFlow









什么是TensorFlow?
假如您目前正在运用Python停止机器学习项目开发的话,那么您一定听说过TensorFlow这一盛行的开源库。它是由Google与Brain Team合作开发而成,次要用于机器学习类运用的开发。
TensorFlow的工作方式相似于编写大量触及张量(tensor)操作的新的算法库。由于神经网络可以很容易地被表示为计算图形,因此它们可以运用TensorFlow,来作为张量上的一系列操作予以完成。此处,张量表示为数据的N维矩阵。
TensorFlow的特点
TensorFlow针对速度停止了优化。它应用XLA等技术,完成了疾速线性代数的运算。
(1)呼应式构建
运用TensorFlow,我们可以轻松地可视化图形的每一个部分。而下面将要提到的NumPy或SciKit则无此选项。
(2)灵敏
由于具有模块化的特点,因此Tensorflow在功能上具有灵敏的可操作性,用户可以只选用其需求的独立部分。
(3)易于训练
它可以经过CPU和GPU的训练方式,轻松地完成分布式计算。
(4)并行神经网络训练
由于TensorFlow提供了流水线式的操作,因此从某种意义上说,您可以训练多个神经网络和多个GPU。这对于大规模系统上的模型来说是非常高效的。
(5)大型社区
无须置疑,由于是Google开发的,因此一大批软件工程师会持续努力于其波动性的改进。
(6)开源
由于是开源的,因此只需有互联网的衔接,任何人都可以运用到它。
TensorFlow的接受度
大家所熟习的Google语音搜索、以及Google相册等运用都是由TensorFlow库所开发的。虽然由TensorFlow所创建的库集合都是用C和C++编写的,但是它拥有一个复杂的Python前端。因此,您的Python代码将会被它所编译,然后再由C和C ++构建的TensorFlow分布式引擎所执行。

02

Scikit-Learn







什么是Scikit-Learn?
它是一个与NumPy和SciPy相关联的Python库,被以为是处理复杂数据的Python库之一。Scikit-Learn有很多改进版本,其中的一种是经过交叉验证的功能,以及提供多个参数目的,来改进诸如逻辑回归、以及最近邻居等多种训练的方法。
Scikit-Learn的特点
(1)交叉验证:它提供许多方法来检查、监督模型对于不可见数据的准确性。
(2)无监督学习算法:异样,它也提供包括聚类、因子分析、主成分分析、以及无监督神经网络等的大量算法。
(3)特征提取:可以被用于从图像和文本中提取特征(例如,Bag of words)。
(4)Scikit-Learn的接受度
它包含了大量可用于完成标准机器学习、以及数据发掘义务的算法。例如:降低维度、分类、回归、聚类和模型选择等。

03

NumPy





什么是NumPy?
NumPy被以为是Python中受欢迎的机器学习库之一。TensorFlow和其他库在外部都会运用NumPy来执行多种操作。其中,数组接口是NumPy好用、也是重要的功能之一。
NumPy特点
交互式:NumPy具有强交互性、且易于被运用。
数学性:经过复杂的数学,将完成变得非常简单。
直观:可以将编码、及概念变得简单易懂。
强交互性:由于得到了广泛的运用,因此它获得了更多的开源贡献。
NumPy的接受度
NumPy库接口可以被用于将图像、声波、以及其他二进制原始流,表达为N维实数数组。为了更好地将其用于机器学习,全栈工程师有必要对其深化了解。

04

Keras







什么是Keras?
Keras被以为是酷炫的机器学习类Python库之一。它提供了一种更容易表达神经网络的机制。同时,Keras还提供了一些可用于编译模型、处理数据集、图形可视化等方面的工具。
Keras在后端外部运用的是Theano或TensorFlow。它可以被用在诸如CNTK之类的各种盛行的神经网络上。与其他机器学习类型的库相比,由于Keras经过运用后端的基础架构来创建计算图形,因此其后续的执行操作相对较慢。另外,Keras的一切模型都是可被移植的。
Keras的特点
Keras在CPU和GPU上都可以顺利地运转。
Keras几乎支持神经网络中的一切模型,包括:完全衔接、卷积、汇集、循环、嵌入等。此外,这些模型也可以被组合起来构建更为复杂的模型。
Keras的模块化特性,具有非凡的表现力、灵敏性,且合适于创新类研讨。
Keras是一个完全基于Python的框架,开发人员可以轻松停止各种调试。
Keras的接受度
如今,诸如Netflix、Uber、Yelp、Instacart、Zocdoc、以及Square等众多网站都运用到了Keras构建的交互性功能。许多初创型公司都情愿在其产品核心中用到Keras所提供的深度学习技术。
Keras包含了许多神经网络常用的构建模块,例如:各个层、对象、激活函数、优化器、以及一系列可供处理图像与文本数据工具。
此外,它还提供了许多预处理数据的集合、以及预训练的模型,其中包括:MNIST、VGG、Inception、SqueezeNet、以及ResNet等。
在接受程度上,Keras是排名第二的,被深度学习研讨人员所喜欢的Python库。一些大型迷信组织,特别是CERN和NASA的研讨人员,都会用到Keras。

05

PyTorch





什么是PyTorch?
PyTorch是一个大型的机器学习库,它允许开发人员经过GPU加速,来执行张量计算、创建动态计算图、并自动计算出梯度。此外,PyTorch还提供了丰富的API,可用于处理与神经网络相关的运用成绩。
基于Torch的PyTorch是一个用C言语完成的开源机器学习库。当然,它也带有Lua的包装器。
PyTorch的特点
(1)混合前端
新的混合前端在eager形式下,保证了易用性和灵敏性。在被无缝地转换到graph形式后,它可以在C++的运转环境中保证速度、优化和相应的功能。
(2)分布式训练
得益于Python和C++可以访问到对等式通讯的优点,它可以对集合式操作和异步执行提供原生的支持,并且可以优化研讨、以及消费环境中的功能。
(3)Python优先
PyTorch并非是一种Python绑定的单体式(monolithic)C++框架。它是为深化地集成到Python中而构建的。因此它可以与各种盛行的库、以及Cython和Numba等软件包一同运用。
(4)库和工具
由活跃的研讨人员与开发人员所构成的社区,完成了一个丰富的工具与库的生态系统。该系统可以被用于扩展PyTorch、并支持从计算机视觉到强化学习等范畴的开发。
PyTorch的接受度
PyTorch由Facebook的人工智能研讨小组所开发,次要被用于自然言语处理等运用,例如,Uber的Pyro软件就将它用到了概率编程上。
如今,PyTorch在许多方面都超越了TensorFlow,并且持续惹起了更多的关注。

06

LightGBM







什么是LightGBM?
Gradient Boosting是目前好用且盛行的机器学习库之一。它经过运用重新定义的基本模型与决策树,来协助开发人员构建新的算法。它所提供的LightGBM、XGBoost和CatBoost等特殊库,有助于处理常见的各种成绩。
LightGBM的特点
(1)高速的计算才能,确保了较高的消费率。
(2)界面直观,且对用户敌对。
(3)训练的速度比其他深度学习库要快。
(4)在计算NaN值和其他规范值时,不容易产生错误。
LightGBM的接受度
由于具有高度可扩展性、可以优化和疾速完成梯度加强,因此LightGBM备受机器学习开发人员,特别是全栈工程师的欢迎。

07

Eli5





什么是Eli5?
大多数状况下,机器学习模型的预测结果并不太准确,而Eli5内置Python的机器学习库却有助于克制这一点。它是对所无机器学习模型的可视化和调试的组合,并且可以跟踪某个算法的一切步骤。
Eli5的特点
此外,Eli5可以支持XGBoost、lighting、scikit-learn和sklearn-crfsuite等其他库,并且可以完成它们不同的义务。
Eli5的接受度
适用于需求在短工夫内停止大量计算的数学运用程序。
在与其他Python包存在依赖关系时,Eli5可以起到重要的作用。
可以在各个范畴实施传统的运用程序、以及更新的方法。

08

SciPy







什么是SciPy?
SciPy是一个面向运用程序开发人员和工程师的机器学习库。与SciPy堆栈不同,SciPy库包含了用于优化、线性代数、积分和统计的模块。
SciPy的特点
SciPy库的次要特点是运用到了NumPy来停止开发,因此它的数组充分应用了NumPy的特点。此外,SciPy提供了诸如优化、数值积分和其他特定的子模块。这些一切子模块里的一切功能都有着详细配套的文档。
SciPy的接受度
由于SciPy是一个运用NumPy来处理数学函数的库,因此SciPy采用NumPy数组作为基本的数据结构,并附带了用于迷信编程的各种常用义务模块。
SciPy可以轻松地处理包括:线性代数、积分(微积分)、常微分方程求解、以及信号处理在内的各项义务。

09

Theano


什么是Theano?
Theano是一个在Python中可用于计算多维数组的机器学习类框架库。Theano的工作方式相似于TensorFlow,但是其效率不及TensorFlow,因此不太合适消费环境。不过,与TensorFlow相似,Theano也可以被用于分布式或并行的环境之中。
Theano的特点
(1)与NumPy严密集成 - 用户可以在Theano所编译的函数中残缺地运用到NumPy数组。
(2)透明地运用GPU - 执行数据密集型计算比在CPU上更快。
(3)高效的符号区分 - Theano经过一个或多个输入,为您的函数提供衍生工具。
(4)速度和波动性优化 - 即便x非常小,也能获得正确的log(1+x)的答案。
(5)生成动态C言语代码 - 评价表达式的速度更快更高效。
(6)广泛的单元测试和自我验证 – 可以检测和诊断模型中的多种类型错误。
Theano的接受度
由于Theano表达式的实践语法,仅在笼统意义上定义、编译了后续的实践计算,因此它对于习气了正常软件开发的初学者来说,并不太合适。不过,在被专门用于处理深度学习时,它运用到了大型神经网络算法所需的各种计算类型。另外,由于早在2007年就被开发出来了,因此Theano被以为是深度学习研讨和开发的行业标准。
我们悲观地估计,Theano的受欢迎程度会随着工夫的推移而增长。

10

Pandas


什么是Pandas?
Pandas也是一种Python类机器学习库,它提供了高级的数据结构和各种分析类工具。Pandas库重要的一个特性是:可以运用一个或两个命令,将复杂的操作与数据停止转换。Pandas有许多内置的分组方法,其中包括:数据、过滤以及工夫序列功能。
Pandas的特点
Pandas可以让我们操作数据的整个过程愈加容易。Pandas的功能次要包括:支持重新索引、迭代、排序、聚合、衔接、以及可视化等操作。
Pandas的接受度
目前,Pandas库的各种发布版次要集中在错误修复、加强功能和API修正等方面。Pandas的最近一次改进,可以让它完成对于数据的分组与排序。它可以为运用选择合适的输入方法,并为执行各种自定义类型的操作提供支持。用户在运用Pandas与其他库工具一同停止数据分析时,可以获取较高的功能与灵敏性。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评8

悟天天 2019-10-11 12:47:56 显示全部楼层
国外似乎最盛行的是PHP,JAVA比较冷
回复

使用道具 举报

用户名难取 2019-10-11 12:55:58 显示全部楼层
分享了
回复

使用道具 举报

義123 2019-10-11 13:06:04 显示全部楼层
分享了
回复

使用道具 举报

只爱啊昆 2019-10-11 13:16:16 显示全部楼层
分享了
回复

使用道具 举报

k67577521 2019-10-11 13:22:37 显示全部楼层
分享了
回复

使用道具 举报

k_baby 2019-10-12 10:03:16 来自手机 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
回复

使用道具 举报

LOveQzh倒数 2019-10-13 07:45:13 显示全部楼层
前排支持下
回复

使用道具 举报

情王淫正 2019-10-14 07:21:26 显示全部楼层
介是神马?!!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies