Python是当今数据科学家和网络开发人员中最受欢迎的语言之一,这要归功于大量的库,它们几乎可以做任何事情,包括机器学习。
如果你正在启动一个利用机器学习的数据科学项目,并计划使用Python,(在此查看Python的好处),有大量的库可以满足不同的用例、技能和定制需求。机器学习算法很复杂,所以自己编写算法可能很有挑战性。幸运的是,Python社区的成员已经完成了这项艰巨的工作,使其他开发者能够节省时间,专注于手头的应用。
这里有24个非常好的Python机器学习库。
数据处理和可视化
1.NumPy
它是关于什么的:NumPy(Numerical Python)为在Python中对n数组和矩阵进行操作提供了很多有用的功能。你会得到NumPy数组类型的数学运算的矢量化,提升其性能,加快执行速度。
2.SciPy
它是关于什么的:SciPy是一个Python库--不要把它和SciPy Stack混为一谈!它包括线性代数、积分和统计的模块。它包括线性代数、积分、优化和统计的模块。它的主要功能是建立在NumPy之上的,所以希望它的数组能使用NumPy。开发人员很欣赏SciPy,因为它通过其特定的子模块提供了高效的数值例程,如数值积分、优化和其他许多例程--而且它们的所有功能都有很好的文档,使你在使用该库时更容易。
对于...科学编程,包括数学、科学和工程(线性代数、微积分、常微分方程求解)。
3.Pandas
它是关于什么的:Pandas的设计是为了直观地处理 "标记 "和 "关系 "数据的工作。该库由两个主要的数据结构组成。"系列"(一维)和 "数据框架"(二维)。Pandas允许轻松地从DataFrame中删除和添加列,将数据结构转换为DataFrame对象,处理丢失的数据,等等。
对于......数据处理,简单的数据操作,聚合和可视化。
4.Matplotlib
它是关于什么的:一个标准的机器学习库,为轻松生成简单而强大的可视化效果而创建。一个高质量的软件,使Python成为MatLab或Mathematica等科学工具的重要竞争者。请注意,该库是一个低级别的库,这意味着你可能需要写比平时更多的代码来实现高级别的可视化。一般来说,Matplotlib比其他高级工具需要付出更多的努力,但这一切绝对值得。另外,流行的绘图库被设计为与Matplotlib一起工作。想看看这个库的运行情况吗?请看这个在Python中进行数据可视化的分步指南。
对于......创建二维图表和图形(直方图、散点图、非喀斯特坐标图。
5. Seaborn
它是关于什么的:基于Matplotlib,这个方便的库是用于统计模型可视化的Python机器学习工具之一。我们谈论的是热图和类似的东西,是总结数据和描述整体分布的可视化。开发人员可以使用丰富的可视化库,包括一些复杂的类型,如时间序列、联合图和小提琴图。
对于...创建数据可视化。
6.Bokeh
它是关于什么的:众多Python可视化工具中的另一个。这个是关于交互式可视化的,完全独立于Matplotlib。互动性是这个库的核心,可视化通过现代浏览器呈现,类似于数据驱动文档(d3.js)。Bokeh提供了一套多功能的图形、造型和交互能力,如链接图、添加JavaScript小工具和定义回调等。
对于......在浏览器中借助于JavaScript小工具创建交互式和可扩展的可视化内容。
7.Plotly
它是关于什么的:Plotly是一个基于网络的工具,用于构建可视化,并将API暴露给Python等编程语言。你可以在Plot.ly网站上找到大量令人印象深刻、开箱即用的图形。一般来说,该库适应于在交互式网络应用中工作。该库正在不断扩展新的图形和功能,支持多链接视图、动画和串联集成。
对于......生成可视化的图形,如等高线图形、三元图和三维图表。
8.pydot
它是关于什么的:Pydot是一个帮助开发者生成面向和非面向图形的库。它作为Graphviz的接口工作,Graphviz是用纯Python编写的。有了这个库,开发者可以显示图形的结构--当你在构建基于神经网络和决策树的算法时,这些结构往往是必不可少的。
对于......创建复杂的面向和非面向的图形。
机器学习+深度学习
9.SciKit-Learn
它的作用是什么?Scikits是SciPy Stack中的一组额外包,是为图像处理等特定功能设计的。说到机器学习的便利性,Scikit-learn占据了统治地位。该软件包建立在SciPy的基础上,并使用其数学运算来为常见的机器学习算法提供一个简洁的接口。该库提供了优秀的代码、高质量的文档、直观的使用和高性能。是Python机器学习项目的行业标准。
对于...处理标准的机器学习和数据挖掘任务,如聚类、回归、降维、分类和模型选择。
10.XGBoost
它的作用是什么?这个优化的分布式梯度提升库是高效、灵活和可移植的。它帮助开发者在梯度提升框架下实现机器学习算法。XGBoost提供并行的树状提升,可以快速解决许多数据科学问题。开发者可以在Hadoop、SGE和MPI等主要分布式环境中运行相同的代码。
对于...在梯度提升下实现机器学习算法。
11.11.LightGBM
它的作用是什么?另一个有用的梯度提升框架,使用基于决策树的学习算法。它是快速的、分布式的,并提供高性能。开发人员使用它可以获得更快的训练速度、更高的效率、更低的内存使用率、更好的准确性。它还支持并行和GPU学习。当你在特定环境下使用多台机器进行训练时,LightGBM可以实现线性提速。你会发现它在微软的DMTK(github.com/microsoft/d…
对于......排名、分类和许多其他机器学习任务。
12.CatBoost
它的作用是什么?这个快速、可扩展、高性能的决策树梯度提升库对Python开发者来说非常方便,但也包括R、Java和C++。与其他GBDT库相比,CatBoost因其质量而脱颖而出。它的推理速度也被认为是同类中最好的。该库同时支持数字和分类特征,以及快速的GPU和多GPU训练支持。在此基础上,它还包括数据可视化工具。
对于......排名、分类、回归和其他机器学习任务来说
13.Eli5
它是关于什么的:当你从机器学习模型中得到不明确的预测,而你又想澄清的时候,这个库就会派上用场。开发人员将其用于可视化和调试机器学习模型。你可以一步一步地跟踪算法的工作,看它在哪里工作不正常。此外,该库支持scikit-learn、XGBoost、LightGBM、lightning和sklearn-crfsuite库。
对于...调试机器学习模型。
14.PyBrain
它是关于什么的:PyBrain是Python-Based Reinforcement Learning, Artificial Intelligence, and Neural Network Library的缩写。目前,这是一个用于Python的模块化机器学习库,尚未投入使用。其理念是为机器学习任务提供灵活、易用和强大的算法,以及各种预定义的环境来测试和比较算法。它对入门级的学生很有用,但也为最先进的研究提供算法。
对于......轻松创建机器学习任务。
15.Keras
它是怎么回事:这个用于构建神经网络的开源库简单明了,并提供了高水平的可扩展性。该库使用其他软件包,即Theano或TensorFlow,作为其后端。微软还集成了CNTK(微软的认知工具包)作为另一个后端。Keras给你提供了一个极简的设计方法,并允许通过紧凑的系统进行快速和简单的实验。
对于......快速构建神经网络,还可以进行严肃的建模。
16.Dist-Keras
它的作用是什么?Dist-Keras(分布式Keras)是一个建立在Keras和Apache Spark之上的分布式深度学习框架。它专注于最先进的分布式优化算法。开发人员可以轻松实现新的分布式优化器,并专注于他们的研究。该库支持几种分布式方法,如使用数据并行方法训练集合和模型。
对于...构建分布式优化算法。
17.Theano
它的作用是什么?这个机器学习库允许定义、优化和评估涉及多维数组的数学表达式。这些往往是使用其他库的开发者的一个挫折点。Theano与NumPy紧密结合。由于对GPU的透明使用,该库很容易设置。它还包括优秀的文档和大量的教程。
对于......让神经网络和深度学习模型快速启动和运行。
18.TensorFlow
它的作用是什么?这个流行的Python框架用于深度和机器学习,是在谷歌大脑开发的。它可以帮助开发者使用处理多个数据集的人工神经网络。在常规TensorFlow(tflearn、tf-slim、skflow)之上的不同的层帮助器使它更有价值。该库不断扩大,并经常增加新的版本--例如,修复潜在的安全漏洞或改进TensorFlow和GPU的集成。
对于......深度和机器学习任务,如物体识别、语音识别等等。
19.语音识别系统(PyTorch
它是关于什么的。PyTorch是一个框架,允许用GPU加速进行张量计算。开发人员还用它来创建动态计算图,并自动计算梯度。它基于Torch,一个用C语言实现的开源深度学习库,用Lua语言封装。该库提供了丰富的Python API,用于解决与神经网络相关的应用(2017年才引入)。
对于......希望轻松执行深度学习任务的数据科学家来说。
20.Caffe
它的作用是什么?Caffe由伯克利人工智能研究中心(BAIR)/伯克利视觉与学习中心(BVLC)和社区贡献者开发,是一个支持视觉应用中机器学习的库。开发人员用它来创建深度神经网络,能够识别图像中的物体或识别视觉风格。那些在图像上进行训练的人可以利用与GPU训练的无缝集成的优势。该库主要用于研究,也可以帮助训练生产使用的模型。
对于...视觉应用的神经网络/深度学习。
21.Fuel
它的作用是什么?这个有用的库为机器学习模型提供了它们学习所需的数据。它包括常见数据集的接口(MNIST、CIFAR-10的图像、Google的One Billion Words的文本)。你可以用许多不同的方式来迭代你的数据--例如,用洗牌/顺序的例子来进行迷你批处理。该库还提供了一个预处理程序的管道,允许即时编辑数据(添加噪音,从句子中提取n-grams或从图像中提取补丁)。
对于...处理机器学习模型的数据。
22.StatsModels
它是关于什么的:StatsModels是一个Python库,允许通过使用不同的统计模型估计方法进行数据探索,并执行统计断言和分析。该库包括通过线性回归模型、稳健线性模型、离散选择模型、广义线性模型、时间序列分析模型等的描述性统计和结果统计。你还可以从它的绘图功能中获益,这些功能是专门为统计分析和处理大型数据集的高性能而设计的。
用于...数据探索。
--
23.Scrapy
它的作用是什么?这是最方便的Python机器学习库之一!它有助于创建爬行程序(蜘蛛机器人),从网上检索结构化数据(如联系信息或URL)。它是一个成熟的框架,被开发者用来从API中收集数据。它在界面设计上遵循 "不要重复自己 "的原则,激励用户编写通用的、可重复使用的代码,用于构建和扩展大型爬虫。
对于...为Python机器学习模型刮取数据。
24.Pattern
它是关于什么的:这个全套库提供ML算法,以及收集和分析数据的工具。数据挖掘功能有助于从Google、Twitter和Wikipedia收集数据。它包括一个网络爬行器和HTML DOM解析器。你可以用它在一个地方收集和训练数据。
对于...自然语言处理(NLP)算法、聚类和分类。
利用Python机器学习库的优势
自然,这只是冰山一角。还有许多Python机器学习库被证明是有用的,这取决于手头的任务。
但是这些库对于在Python中构建高性能的机器学习模型是必不可少的。它们对......!数据科学家和软件工程师想要开发需要机器学习或深度学习的项目时,会很方便。