2020年六大机器学习Python库!
外头有许多类型的python库可用,本文介绍了一些流行的机器学习库。
1. NumPy:
NumPy是一种通用的数组处理软件包。它提供高性能的多维数组对象和用于处理这些数组的工具。它是用于科学计算的基本Python软件包。
NumPy针对Python的CPython参考实现,这是一种非优化的字节码解释器。
NumPy的核心功能是“ndarray”,代表n维数组数据结构。这些数组是内存中的交错视图。相比Python的内置列表数据结构,这些数组是同构类型的:单个数组的所有元素都必须是同一类型。
2. Scipy:
SciPy是一种免费开源Python库,用于科学计算和技术计算。
它包含用于优化、线性代数、积分、插值、特殊函数、FFT、信号及图像处理、ODE求解器以及科学工程中其他常见任务的模块。
NumPy堆栈有时也叫SciPy堆栈。SciPy使用的基本数据结构是NumPy模块提供的多维数组。NumPy提供了一些用于线性代数、傅立叶变换和随机数生成的函数,但不具有SciPy中的等效函数具有的一般性。
3. Scikit-learn:
Scikit-learn(又名sklearn)是面向Python编程语言的免费软件机器学习库。
它有各种分类、回归和聚类算法,包括支持向量机、随机森林、梯度提升、k均值和DBSCAN,旨在与Python数值库NumPy和科学库SciPy协同操作。
Scikit-learn项目始于David Cournapeau开发的谷歌编程夏令营(Summer of Code)项目“SciKit”(SciPy Toolkit)。
它是GitHub上最受欢迎的机器学习库之一。
它主要用Python编写,广泛地使用NumPy,用于高性能线性代数和数组运算。
4. Tensorflow:
TensorFlow是一种免费开源软件库,用于针对各种任务的数据流和可微分编程。
TensorFlow是谷歌Brain的第二代系统。参考实现在单个设备上运行,但TensorFlow可以在多个CPU和GPU上运行。TensorFlow可在64位的Linux、macOS、Windows和移动计算平台(包括Android和iOS)上使用。
Tensor处理单元(TPU):2016年5月谷歌宣布Tensor处理单元,这种针对特定应用的集成电路专门为机器学习而构建,为TensorFlow量身定制。TPU是一种可编程的AI加速器,旨在提供高吞吐量的低精度算术运算,面向使用或运行模型,而不是训练模型。
5. Pytorch:
PyTorch是一种基于Torch库的开源机器学习库,用于计算机视觉和自然语言处理等应用,主要由Facebook的AI研究实验室开发。
它有更完善的Python接口,主要侧重于开发,它还有C++接口。
几款深度学习软件是在PyTorch上构建的,包括优步的Pyro、HuggingFace的Transformers和Catalyst。
它提供两种高级功能:通过GPU实现拥有强大加速功能的Tensor计算,建立在基于磁带的自动微分系统上的深度神经网络(DNN)。
它定义了一个名为Tensor的类来存储和操作数字的异构多维矩形阵列。PyTorch张量类似NumPy数组,但也可以在支持CUDA功能的英伟达GPU上加以处理。
6. Keras:
Keras是一种用Python编写的开源神经网络库。它能够在TensorFlow、Microsoft Cognitive Toolkit、R、Theano或PlaidML上运行。
Keras致力于易于使用、模块化和可扩展。
François Chollet(谷歌工程师兼Keras的维护者)解释,Keras被认为是一种接口,而不是一种独立的机器学习框架。它提供了更高级、更直观的抽象集,无论使用哪种计算后端,用户都可以轻松开发深度学习模型。
Keras含有常用神经网络构建模块的众多实现,比如层、目标、激活函数、优化器以及许多工具,这些工具使图像和文本数据处理起来更容易,从而简化编写深度神经网络代码所需的编程工作。
Keras支持卷积和循环神经网络。它支持其他常见的实用层,比如随机失活、批量归一化和池化。Keras让用户可以把深度模型用在智能手机、Web或Java虚拟机上。
截至2018年年中,Keras声称拥有逾25万个人用户,它在KDnuggets 2018软件调查中是被引用次数排名第十的工具,使用率达到22%。
参考资料:
https://en.wikipedia.org/wiki/NumPy
https://en.wikipedia.org/wiki/Scikit-learn
https://en.wikipedia.org/wiki/PyTorch