当下是人工智能爆发的时代,AI和机器学习广泛流行,当然机器学习领域最火要数Python语言。Python 由于其简便,对用户友好且易于管理的语言,拥有广泛的社区支持,在机器学习领域更是如此,很多框架都是用Python编写或者提供了Python SDK。为了便于大家学习和使用,我们列举一下2021年最流行的Python机器学习类库。
TensorFlow
- 网站:tensorflow.org
- 源码仓库:Github/tensorflow/tensorflow
- 开发者:谷歌大脑团队
- 主要用途:深度神经网络
TensorFlow 是由谷歌大脑(Google Brain)团队开发的一个AI框架,主要用于深度学习和神经网络。使用TF可以很轻松将计算任务分配到多个CPU或GPU核心,甚至可分配到多GPU。TensorFlow基本计算单元为张量(Tensors)。张量可以定义为一个容器,可存储N维数据及其线性操作。
pandas
- 网站: pandas.pydata.org
- 源码仓库: github/pandas-dev/pandas
- 开发者:开源社区
- 主要用途:数据分析和操作
Pandas库,主要用于数值数据和时间序列的数据操作。它使用数据框和系列分别定义三维和二维数据。Pandas提供了索引大数据以便在大数据集中快速搜索的选项。它以数据重塑、围绕用户定义的轴旋转、处理缺失数据、合并和连接数据集以及数据过滤选项的功能而闻名。
Pandas对于大型数据集非常有用且速度非常快。当记录超过50k时,其性能超Numpy。在数据清理方面,它是最好的库,因为它提供了像exce一样的交互性和像Numpy一样的速度。它也是为数不多的可以处理DateTime的ML库之一,无需任何外部库的任何帮助,而且代码最少。
Numpy
- 网站:numpy.org
- 源码仓库:github/numpy/numpy
- 开发者:开源社区
- 主要用途:通用矩阵处理
Numpy用于处理多维数据和复杂的数学函数。Numpy是Python语言的快速计算库,可以处理从基本代数到傅立叶变换、随机模拟和拓扑操作的任务和函数。这个库内核是用C语言编写的,比一般Python计算库性能更好。如果记录数不是很大,在Numpy数组在索引方面要明显优于Pandas系列。另外,目前NumPy数组只支持单CPU中,所以性能会有限制。
Numpy的学习成本较低(可以参考虫虫之前的文章),易于上手,并是最流行的机器学习库之一。
自然语言工具包(NLTK)
- 网站: nltk.org
- 源码仓库: github/nltk/nltk
- 开发者:NLTK团队
- 主要用途:自然语言处理
是广泛使用的文本分类和自然语言处理库。可以用于词干提取、词形还原、标记和在文档中搜索关键字。NLTK可用于高级语言分析,比如情感、评论分析、文本分类器、检查评论中的关键词、文本挖掘和许多其他与人类语言相关的操作。NLTK需要文本处理来训练的模型来识别和创建。
Scikit-Learn
- 网站:scikit-learn.org
- 源码仓库: github/scikit-learn/scikit-learn
- 开发者:SkLearn.org
- 主要用途:预测数据分析和数据建模
Scikit-learn主要用于各种数据建模概念,如回归、分类、聚类、模型选择等。 该库是在Numpy、Scipy和matplotlib之上编写的。Scikit-learn易于集成,可以继承其他机器学习库实现特定目标。比如Numpy和Pandas用于数据分析,Plotly用于可视化。
Keras
- 网站: keras.io
- 源码仓库:github/keras-team/keras
- 开发者:各种开发者
- 主要用途:神经网络计算
Keras提供了一个Python接口的 Tensorflow库,特别专注于AI神经网络。早期版本还包括许多其他后端,如Theano、Microsoft认知平台和PlaidMl。Keras 包含常用神经网络的标准块,以及使图像和文本处理更快更流畅的工具。除了标准的神经网络块外,它还提供重复出现的神经网络。
PyTorch
- 网站:pytorch.org
- 源码仓库:github/pytorch/pytorch
- 开发者:脸谱AI实验室(FAIR)
- 主要用途:深度学习、自然语言处理和计算机视觉
Pytorch 是由脸书开发的ML库,基于Lua语言实现的Torch机器学习库。该项目是用Python、C++ 和CUDA语言混合编写的。PyTorch 支持在C和C++ 以及Pyton等常见语言的扩展。作TF竞争对手,他也使用张量,但它更容易学习并且与Python具有更好集成性。虽然它支持NLP,但该库的主要重点是开发和训练深度学习模型。
mlpack
- 源码仓库:github/mlpack/mlpack
- 开发者:社区,佐治亚理工学院支持
- 主要用途:多个ML模型和算法
MlPack 主要是基于C++的机器学习库,支持它Python,R,Julia和 Golang等语言。它旨在支持几乎所有著名的机器学习算法和模型,如 GMM、K均值、最小角度回归、线性回归等。开发该库的主要重点是使其成为快速、可扩展且易于理解的以及易于使用的库,即使是编程小白也可以毫无问题地理解和使用它。
OpenCV
- 网站:opencv.org
- 源码仓库:github/opencv/opencv
- 开发者:由英特尔公司发起
- 主要用途:计算机视觉
OpenCV 是一个致力于计算机视觉和图像处理的开源平台。 该库拥有2500多种专用于计算机视觉和机器学习的算法。它可以跟踪人体运动、检测移动物体、提取3D模型、将图像拼接在一起以创建高分辨率图像,探索AR的可能性。OpenCV被广泛用于各种闭路电视监控,各大相机厂商也都在使用OpenCV使其产品更智能和用户友好。
Matplotlib
- 网站:matplotlib.org/
- 源码仓库:github/matplotlib/matplotlib
- 开发者:Micheal Droettboom,社区
- 主要目的:数据可视化
Matplotlib是Pthon中使用最广泛的图形的库。它使用Python GUI工具包来生成图形和绘图。Matplotlib还提供了一个类似MATLAB的界面,以便用户可以执行与MATLAB 类似的任务。这个库是免费和开源的,并且有许多扩展接口,可以将matplotlib API扩展到各种其他库。
总结
在本文中,我们介绍了机器学习中最常用的Python库。每个库(框架)都有自己的优点和缺点,可以尝试使用,并在实践中选择最适合的库。