流行的 Python 机器学习库的趋势和比较

人工智能 机器学习
Python 是全球最流行的编程语言之一,拥有越来越多的库和框架。看看最新的。

Python 是全球最流行的编程语言之一,拥有越来越多的库和框架。看看最新的。

Python 是全球最流行的编程语言之一,拥有越来越多的库和框架来促进 AI 和ML 开发。Python 中有超过 250 个库,要知道哪个库最适合您的项目并跟上所有这些库带来的技术变化和趋势,可能会有点令人困惑。

下面是我使用过的流行的 Python 机器学习库。我尽我所能根据哪些场景使用它们来对它们进行分类。除了这些之外,还有很多库,但我无法谈论我没有使用过的库,我认为这些是使用最多的库。

NumPy

NumPy 是一个众所周知 的通用数组处理包,与其他机器学习包不同。对于 n 维数组(向量、矩阵和高阶矩阵),NumPy 提供了高性能(本机编译)支持和对各种操作的支持。它支持向量化操作,特别是,将 Python 表达式转换为低级代码调度,隐式循环跨数据的不同子集。

NumPy 函数

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

函数的 start 和 stop 参数都是必需的,它们返回的值均匀分布在预定的时间间隔内。

  • numpy.repeat

使用 numpy.repeat(a, repeats, axis=None) 方法重复数组的元素。第二个输入重复指定重复次数。

  • numpy.random.randint

函数 numpy.random.randint(low, high=None, size=None, dtype='l') 从 [low, high] 返回随机整数。如果高参数不存在(无),则从范围 [0, low] 中选择随机数。

为什么 Numpy 如此受欢迎?

简而言之,NumPy 优化和预编译的 C 代码可以处理所有繁重的工作,使其比标准Python 数组更快。

NumPy 使科学计算中经常使用的许多数学程序变得快速且易于使用。

Pandas

Pandas 正迅速成为使用最广泛的 Python 数据分析库,因为它支持处理“关系”和“标记”数据的快速、适应性和表达性数据结构。存在需要 Pandas 的实际和现实世界的 Python 数据分析问题。Pandas 提供彻底优化和高度可靠的性能。只有 C 或 Python 用于纯粹编写后端代码。

一些Pandas功能

pd.read_csv, pd.read_excel

要提到的第一个函数是 read_csv 或 read_excel。这些功能已经提供了清晰的解释。我利用它们将 CSV 或 Excel 文件中的数据读取为 pandas DataFrame 格式。

df = pd.read_csv("PlayerStat.csv")

.read csv() 函数还可以使用以下语法读取 .txt 文件:

data = pd.read_csv(file.txt, sep=" ")
  • df.query()

布尔表达式可以过滤或查询数据。我可以使用查询函数作为字符串应用过滤条件。与许多其他程序相比,它提供了更多的自由。

df.query("A > 4")

仅返回 A 大于 4 的行。

  • df.iloc()

我将行和列索引作为参数传递给该函数,该函数返回 DataFrame 的适当子集。

  • df[‘’].dtypes

另一个非常基础和流行的功能。在开始任何分析、可视化或预测建模之前,必须知道变量的数据类型。使用这种技术,您可以获得每一列的数据类型。

  • df.dtypes

Pandas vs Vaex

Vaex Python 是 Pandas 库的替代品,它使用 Out of Core Dataframe 更快地计算大量数据。为了查看和研究大型表格数据集,Vaex 是一个高性能 Python 模块,用于惰性核心外数据帧(类似于 Pandas)。每秒可以使用简单的统计数据计算超过 10 亿行。它支持各种可视化,允许大量交互式数据探索。

TensorFlow

TensorFlow 是由 Google创建和发布的用于快速数值计算的 Python 库 。Tensorflow 使用与 Theano 有所不同的语言和函数名称,这可能会使从 Theano 的切换变得比它必须的更复杂。然而,Tensorflow 中的整个计算图的运行方式与 Theano 中的类似,具有相同的优点和缺点。即使对计算图的修改对性能有重大影响,Tensorflow 的 eval 函数也只是让观察中间状态变得稍微容易一些。与几年前的 Theano 和 Caffe 相比,Tensorflow 是首选的深度学习技术。

TensorFlow 内置函数

  • tf.zeros_like

该函数的输出是一个与输入张量具有相同类型和形状但值为零的张量。

tensor = tf.constant( I[1, 2, 3], [4, 5, 6]])
tf.zeros_like( tensor) # [ [0, 0, 0], [0, 0,0]

从输入图像创建黑色图像时,此功能可能会有所帮助。如果您希望直接定义表单,请使用 tf.zeros。如果您更喜欢初始化 1 而不是 0,请使用 tf.ones_like。

  • tfpad

用常数值在其周围添加指定的填充以增加张量的维度。

  • tf.enable_eager_execution

这可以在您运行 TensorFlow 应用程序时帮助您。使用 Eager Execution 时,您不需要在会话中构建和运行图。这是有关急切执行的更多信息。

“Eager execution”必须是导入 TensorFlow 后的第一条语句。

TensorFlow 与 PyTorch

Torch 的 Python 实现 Pytorch 得到 Facebook 的支持。它通过提供即时图形编译与上述技术竞争,通过不将图形视为不同和不透明的对象,使 Pytorch 代码与周围的 Python 更加兼容。相反,有许多灵活的技术可以即时构建张量计算。此外,它表现良好。它具有强大的多 GPU 能力,很像 Tensorflow;然而,Tensorflow 仍然适用于更大规模的分布式系统。虽然 Pytorch 的 API 文档齐全,但 Tensorflow 或 Keras 的 API 更加完善。然而,Pytorch 在不影响性能的情况下在灵活性和可用性方面取得了胜利,这无疑迫使 Tensorflow 重新思考和调整。Tensorflow 最近受到 Pytorch 的严重挑战,

Keras

Keras 是一个开源软件库,为人工神经网络提供 Python 接口。由于 Keras 名义上是独立于引擎的,所以理论上 Keras 代码可以被重用,即使引擎需要因性能或其他因素而改变。它的缺点是,当您希望创建非常新颖或专业的架构时,通常需要在 Keras 层下使用 Tensorflow 或 Theano。这主要发生在您需要使用复杂的 NumPy 索引时,这对应于 Tensorflow 中的聚集/分散和 Theano 中的 set/inc 子张量。

Keras 函数

  • 评估与预测

在 Keras 中,evaluate() 和 predict() 都可用。这些技术可以利用 NumPy 数据集。当数据经过测试后,我完成了对结果的评估。我使用这些技术来评估我们的模型。

  • Keras 中的图层

每个 Keras 层都包含许多技术。这些层有助于构建、配置和训练数据。密集层有助于操作实现。我使用 flat 展平了输入。Dropout 启用输入丢失。我可以使用重塑工具重塑输出。我使用输入启动了一个 Keras 张量。

您可以获得中间层的输出。

一个相当简单的库是 Keras。它使得从层的中间层获取输出成为可能。您可以轻松地向现有层添加一个新层,以帮助您在中间获得输出。

Theano

Theano 是一个 Python 库和优化编译器,用于操作和评估数学表达式,尤其是矩阵值表达式。作为最古老和最成熟的,为 Theano 提供了优势和劣势。大多数用户请求的功能都已添加,因为它是旧版本。但是,其中一些实现有点过于复杂且难以使用,因为没有先例可循。该文档是可以通过但模棱两可的。由于没有简单的方法来检查中间计算,因此在 Theano 中让复杂的项目正常运行可能非常具有挑战性。他们通常使用调试器或通过查看计算图来进行调试。

Theano 函数

  • 声明变量

我用 dscalar 方法声明了一个十进制标量变量。当下面的语句运行时,它会在您的程序代码中添加一个名为 C 的变量。

C = tensor.dscalar()
  • 定义 Theano 函数

该函数接受两个参数,第一个是输入,第二个是函数的输出。根据下面的声明,第一个参数是一个包含 C 和 D 两项的数组。结果是一个标量单位,指定为 E。

f = theano.function([C,D], E)

结论

我见过一个高技能的 Python 程序员迅速掌握新库的精妙之处并了解如何使用它。但是,无论是初学者、中级还是专家,选择一种编程语言还是在这种情况下选择一个库而不是另一个库,很大程度上取决于您项目的目标和需求。

责任编辑:华轩 来源: 今日头条
相关推荐

2017-04-25 17:29:24

2016-11-03 09:19:04

Python机器学习库

2012-12-20 11:13:58

IBMdW

2017-06-27 09:43:43

Python机器学习

2019-02-27 08:00:00

机器学习编程语言框架

2020-08-19 09:20:00

机器学习人工智能Python

2020-03-23 11:56:44

人工智能

2016-12-05 14:37:25

人工智能机器学习

2022-08-29 17:12:07

人工智能机器学习Android

2016-11-15 15:02:00

机器学习算法

2020-02-11 14:10:18

机器学习人工智能设计

2020-12-08 13:42:41

机器学习人工智能

2020-12-03 08:01:42

机器学习人工智能AI

2020-08-08 08:20:05

技术互联网冠状病毒

2022-04-20 10:28:12

机器学习深度学习人工智能

2022-08-15 10:21:44

机器学习人工智能

2023-01-13 15:31:31

2020-10-30 10:23:14

机器学习趋势范式

2020-07-28 08:06:24

机器学习技术人工智能

2018-09-18 09:00:28

人工智能机器学习
点赞
收藏

51CTO技术栈公众号