机器学习的一站式library清单

机器学习的一站式library清单

Library(库)一直是知识和研究工具的宝库。随着大数据和数据科学的出现,近年来,研究逐渐变得更加强大、更加数据驱动。

在数据科学领域,“libraries”的工作方式与现实世界中的“图书馆”工作方式相同。这些libraries帮助数据科学家收集、组织和存储数据。图书馆员的数据库设计和开发技能有助于大数据中的组织和数据挖掘过程。

形式上,“库”可以定义为专门用于执行特定任务的,可重复使用功能和模块的集合。

安装和导入:

不同的库提供不同类型的函数来达到所需的结果。尽管它们在许多方面彼此不同,但大多数库都有一个标准流程,通过这个流程,可以将它们安装并导入到系统中,进行处理。

你可以用 conda 或 pip 包管理器,将库安装到系统中。

例如:要安装一个叫’libname’的库,我们可以使用以下命令。

使用 conda :

conda install libname

使用pip:

pip install libname

安装库之后,我们需要在环境中用 python 导入它。

import libname as lb

上面的代码中,“import libname”这部分告诉 Python 把 libname 库引入当前环境。代码的“as lb”部分告诉 Python 为 libname 设置的 lb 别名。这能让你通过简单地输入 lb 来使用 libname 函数。一些常用库的常用别名是 – NumPy (np)、pandas(pd )、sci-kit learn (sklearn)。

在接下来的部分中,你将了解不同可用的库,他们在机器学习中经常被使用。如果你想了解更多机器学习相关内容,可以阅读以下这些文章:
你知道吗?SQL也能做机器学习!
群体学习(Swarm Learning)的工作原理——结合区块链和机器学习的更优解决方案
Classification Algorithm 101: 一小时学会机器学习的分类算法
5种机器学习的分类器算法

1. 探索性数据分析和数学

数据和数学是数据科学的心脏和大脑。因此,我们需要以最佳方式组织、理解数据、轻松有效地使用数学来达到预期结果。

以下库常用于处理数据的组织和数据上的各种数学应用,来获得所需的结果。

1.1 numpy

NumPy(或 Numerical Python)是用于处理数组(arrays)的库。它还有线性代数、傅里叶变换、和矩阵相关的功能。

在 Python 中,我们有列表(lists),可以用来达到数组的目的,但它们处理起来很慢。NumPy 提供了比传统 Python 列表快得多的数组对象。NumPy 中的数组对象称为“ndarray” ,它提供了许多支持函数,让使用“ndarray”变得非常容易。数组在数据科学中非常常用,其中速度和资源非常重要。

1.2 Pandas

Pandas 用于处理数据集。它具有分析、清理、探索和操作数据的各种功能。

Pandas 有助于分析大数据,并根据统计理解得出一些结论。清理杂乱的数据集,使它们具有可读性和相关性,是数据预处理的核心。这可以在 Pandas 的帮助下轻松完成,因此,它成为了数据科学和分析的相关部分。

1.3 SciPy

SciPy(或 Scientific Python)是一个科学计算库,它在底层中使用 NumPy,并提供更多用于优化、统计和信号处理的实用函数。

这里你可能会产生一个疑问。如果 SciPy 在底层使用的 NumPy,为什么我们不能只使用 NumPy?

实际上,SciPy 优化并添加了 NumPy 和数据科学中经常使用的功能。它扩展了 NumPy,提供了额外的数组计算工具和特别的数据结构,例如稀疏矩阵和 k 维树。

2. 数据可视化:

以下这些库被用于数据可视化。当以图形和图表的形式表示事件时,人脑可以更有效、更快速地理解事物。而这些库将我们和数据之间的具体拉进了。

2.1 Matplotlib

Matplotlib 是一个 Python 图形绘图库,可帮助创建静态、动画和交互式可视化。

从直方图到散点图,matplotlib 提供了一系列颜色、主题、调色板和其他选项,来自定义和个性化我们的绘图。无论你是为机器学习项目执行数据探索,还是只是想创建令人惊叹、引人注目的图表,matplotlib 都非常有用。

2.2 Seaborn

Seaborn 是一个用 Python 制作统计图形的库。它建立在 Matplotlib 之上,并与 pandas 数据结构紧密集成。

Seaborn 可以帮你探索和理解数据。它的绘图功能可以对整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合,用来生成信息图像。其面向数据集的API 可以让你关注在图形中不同元素的含义,而不是关注在如何绘制的细节。

2.3 Pillow

Pillow 是一个 Python 图像库(Python Imaging Library – PIL),它可以打开、操作和保存图像。PIL 是 Python 编程语言的免费和开源附加库,增加了对打开、操作和保存许多不同图像文件格式的支持。

2.4 Plotly

Plotly Python 库是一个交互式开源绘图库,支持 40 多种独特的图表类型,涵盖广泛的统计、金融、地理、科学、和 3 维的用例。

3.自动EDA

EDA 是一种数据分析过程,使用了多种技术来更好地理解数据集。它主要用于识别人为错误、缺失值或异常值。它提取有用的变量,并删除无用的变量。它可以理解变量或特征之间的关系。最终,它会最大限度地提高你对数据集的洞察力,并最大限度地减少流程后期的潜在错误。

3.1 Pandas-profiling

Pandas profiling 是一个开源的 Python 模块,我们只需几行代码就可以快速进行探索性数据分析。它还可以生成可呈现给任何人的 Web 格式的交互式报告,即使这些人不懂编程。

简而言之,pandas profiling所做的是为我们节省了所有可视化和理解每个变量分布的工作。它会生成一份报告,其中包含所有可用的信息。

3.2 SweetViz

SweetViz 库是一个开源 Python 库,它可以生成精美的、高密度的可视化,而且只用两行代码就可以启动 EDA。输出结果是一个完全独立的 HTML 应用程序。该系统是围绕快速可视化目标值和比较数据集而构建的。它的目标是帮助快速分析目标特征、训练并测试数据、以及其他类似数据任务。

4. 数据挖掘和抓取

网页抓取 是使用各种工具和框架从互联网收集数据的过程。有时,它用于在线价格变化监控、价格比较,以及通过从他们的网站中提取数据,来查看竞争对手的表现。

4.1 BeautifulSoup

Beautiful Soup 是一个 Python 库,用于网络抓取,从 HTML 和 XML 文件中提取数据。它从页面的源代码创建解析树,可用于以分层和更易读的方式提取数据。

4.2 Scrapy

Scrapy 是一个开源的协作框架,用于快速、直接地从网站中提取你需要的数据。这个工具可用于API 提取数据。它也可以用作通用的网络爬虫。因此,可以说Scrapy 是一个应用程序框架,用来编写抓取网站、并从中提取数据的网络蜘蛛。

5.机器学习/深度学习

以下这些库有助于导入各种模型,如分类、回归、聚类和神经网络。这些库让机器学习和深度学习从现代世界中的技术中脱颖而出。

5.1 Scikit Learn

Scikit-learn 可能是 Python 机器学习最有用的库。 sklearn 库包含许多用于机器学习和统计建模的高效工具,包括分类、回归、聚类和降维等等。

5.2 XGBoost

XGBoost 是一个软件库,你可以下载并安装在你的电脑上,然后从各种界面访问。它提供了一种用梯度提升框架实现的算法。根据它的 Github 页面所说:

XGBoost 是一个优化的分布式梯度提升库,它高效、灵活和便携。

大多数 Kaggle 比赛都是用这个库赢得的比赛,它在现实世界中取得了优异的成绩。

5.3 Keras

Keras 是一个开源软件库,为人工神经网络提供 Python 接口。Keras 充当了 TensorFlow 库的接口。

Keras 可以让用户在智能手机(iOS 和 Android)、Web 或 Java 虚拟机上创建深度模型。它还能在图形处理单元 (GPU) 和张量处理单元 (TPU) 集群上使用深度学习模型的分布式训练。

5.4 TensorFlow

TensorFlow 是一个免费的开源软件库,用于机器学习和人工智能。它可以用于一系列任务,但主要用于深度神经网络的训练和推理。

5.5 PyTorch

PyTorch 是一个优化的Tensor库,主要用于使用 GPU 和 CPU 的深度学习应用程序。它是 Python 的开源机器学习库,主要由 Facebook AI 研究团队开发。它是广泛使用的机器学习库之一,其他常用的是 TensorFlow 和 Keras。

6. 自然语言工具包 (NLTK)

自然语言工具包,或人们更常说的 NLTK,是一套用 Python 编程语言编写的用于英语字符和统计自然语言处理 (NLP) 的库和程序。NLTK 包括图形演示和示例数据。

NLTK 支持 NLP或相关领域的研究和教学,包括经验语言学、认知科学、人工智能、信息检索和机器学习等。

结论

现在,你已经了解了一系列有价值的库,你在数据科学和机器学习过程中很可能会遇到它们,通过这些库,我们可以更轻松地编程,得到令人兴奋的见解。

谢谢你的阅读!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Nimitt Goel
翻译作者:过儿
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://medium.com/@goelnimitt241100/your-one-stop-to-all-machine-learning-libraries-1c3c9efc4db0