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

流行的 Python 机器学习库之间的趋势和比较 圈圈 2023-01-25 00:00:00 866

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库,因为它支持快速,适应性强和富有表现力的数据结构,可以处理“关系”和“标记”数据。有一些实际和现实世界的Python数据分析问题需要Pandas。Pandas提供彻底优化和高度可靠的性能。只有 C 或 Python 用于纯粹编写后端代码。

Pandas的一些功能

pd.read_csv, pd.read_excel

首先要提到的功能是read_csv或read_excel。这些函数已经提供了清晰的解释。我利用它们将数据从CSV或Excel文件读取为Pandas数据帧格式。

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()

我将行和列索引作为参数传递给此函数,该函数返回数据帧的相应子集。

df[‘’].dtypes

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

df.dtypes

Pandas vs Vaex

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

TensorFlow

TensorFlow是由Google创建和发布的用于快速数值计算的Python库。Tensorflow使用的语言和函数名称与Theano略有不同,这使得从Theano切换比必须的更复杂。然而,Tensorflow中的整个计算图的操作与Theano中的计算图类似,具有相同的优点和缺点。即使对计算图的修改对性能有重大影响,Tensorflow 的评估函数也只是稍微容易观察中间状态。与几年前的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”必须是导入 TensorFlow 后的第一条语句。

TensorFlow vs PyTorch

Facebook支持Torch的Python实现Pytorch。它通过提供即时图编译与上述技术竞争,这使得 Pytorch 代码与周围的 Python 更兼容,因为它不将图视为不同且不透明的对象。相反,有许多灵活的技术可以动态地构建张量计算。它表现良好。它具有强大的多GPU功能,就像Tensorflow一样;然而,Tensorflow仍然适用于更实质性的分布式系统。虽然Pytorch的API有据可查,但Tensorflow或Keras更加完善。然而,Pytorch 在不影响性能的情况下在灵活性和可用性方面取得了胜利,这无疑迫使 Tensorflow 重新思考和调整。Pytorch最近严重挑战了Tensorflow,促使Google团队进行了调整。

Keras

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

Keras 函数

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

  • Keras 中的图层
    每个 Keras 层中都有许多技术。这些层有助于构建、配置和训练数据。密集层有助于操作实现。我使用平面扁平化了输入。辍路使输入压路成为可能。我可以使用“重塑形状”工具重塑输出。我使用输入启动了一个 Keras 张量。

  • 您可以获取中间层的输出。
    一个相当简单的库是 Keras。它可以从层的中间层获取输出。您可以轻松地将新层添加到现有层中,以帮助您获得中间层的输出。

Theano

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

Theano函数

  • 声明变量
    我用 dscalar 方法声明一个十进制标量变量。运行下面的语句时,它会将一个名为 C 的变量添加到程序代码中。
    C = tensor.dscalar()
  • 定义 Theano 函数
    该函数接受两个参数,第一个参数是输入,第二个参数是函数的输出。根据下面的声明,第一个参数是两个项目 C 和 D 的数组。结果是指定为 E 的标量单位。
    f = theano.function([C,D], E)

    结论

    我见过一个技术娴熟的Python程序员迅速掌握了新库的微妙之处,并了解如何使用它。但是,无论是作为初学者、中级还是专家,选择编程语言,或者在这种情况下选择库而不是另一种,在很大程度上取决于您项目的目标和需求。 如果你是一个数据科学家,看看Einblick。他们的数据工作流支持python代码。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
圈圈
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
圈圈
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区