机器学习必知的10个python库

人工智能博士 人工智能博士     2023-01-02     753

关键词:

点上方人工智能算法与Python大数据获取更多干货

在右上方 ··· 设为星标 ★,第一时间获取资源

仅做学术分享,如有侵权,联系删除

转载于 :机器学习算法与Python实战

Python 是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。python 在开发人员中流行的原因有很多。然而,最重要的一点是它有大量的库供用户使用。

python 的简单性吸引了许多开发人员使用它来开发各种库,这其中自然也少不了机器学习方向。

今天我们就给大家介绍10个在机器学习领域被广泛应用的 python 库。

首先要介绍的第一个库是 TensorFlow。

1.TensorFlow

什么是 TensorFlow?

如果你目前正在使用 python 进行机器学习项目,那么你可能听说过这一个流行的开源库,那就是 TensorFlow。

这个库是由 Google 与 Brain Team 合作开发的,几乎每一个 Google 的机器学习应用程序都用到了 TensorFlow。

TensorFlow 就像一个计算库,用于编写涉及大量 tensor 操作的新算法。由于神经网络可以很容易地表示为计算图,因此它们可以使用 TensorFlow 作为 tensor 的一系列操作来实现。另外,tensor 是表示数据的 n 维矩阵。

TensorFlow 的特征

1.快速响应的结构

使用 TensorFlow,我们可以很容易地可视化图的每个部分,这在使用 Numpy 或 SciKit 时是做不到的。

2.灵活

TensorFlow 的一个非常重要的特性是,它的操作非常灵活。这意味着它具有模块性,可以让你把希望独立出来的部分分出来

3.容易训练

对于分布式计算来说,它很容易在 CPU 和 GPU 上训练。

4.并行神经网络训练

TensorFlow 提供了管道流,从这个意义上说,你可以训练多个神经网络和多个 GPU,这使得模型在大型系统上非常有效。

5.大型社区

不用说,它是由 Google 开发的,已经有一个庞大的软件工程师团队在不断地改进稳定性。

6.开源

这个机器学习库最好的一个特点是,它是开源的,任何人只要有连接互联网就可以使用它。

TensorFlow 被用在哪里?

你每天都在使用 TensorFlow,你使用的 Google Voice Search 或 Google Photos 等应用程序都是使用这个库开发的。

在 TensorFlow 创建的所有库都是用 C 和 C++编写的,但是,它有一个复杂的前端,是用 python 实现的。你的 python 代码将被编译,然后在使用 C 和 C++构建的 TensorFlow 分布式执行引擎上执行。

实际上,TensorFlow 的应用是无限的,这就是它美妙的地方。

2.Scikit-Learn

什么是 Scikit-Learn?

它是一个与 NumPy 和 SciPy 相关联的 python 库。它被认为是处理复杂数据的最佳库之一。

在这个库中进行了许多修改。其中一个修改是交叉验证特性,它提供了使用多个度量的能力。许多训练方法,如物流回归和最邻近算法,都没有得到什么改善。

Scikit-Learn 的特性

  • 交叉验证:有多种方法可以检查不可见数据上受监督模型的准确性。

  • 无监督学习算法:同样,在产品中有大量的算法——从聚类、因子分析、主成分分析到无监督神经网络

  • 特征提取:用于从图像和文本中提取特征(例如一段文字)

Scikit Learn 被用在哪里?

它包含许多实现标准机器学习和数据挖掘任务的算法,如降维、分类、回归、聚类和模型选择。

3.Numpy

什么是 Numpy?

Numpy 被认为是 python 中最流行的机器学习库之一。

TensorFlow 和其他库在内部使用 Numpy 对 tensor 执行多个操作。数组接口是 Numpy 的最佳和最重要的特性。

Numpy 的特性

  • 交互性:Numpy 非常容易理解和使用

  • 数学性:使复杂的数学实现变得非常简单

  • 直观:真正使编码变得容易,掌握概念也很容易

  • 大量接口:广泛使用,因此有很多开源贡献者

Numpy 被用在哪里?

该接口可用于将图像、声音和其他二进制原始流表示为 n 维实数数组。

机器学习库的实现,拥有 Numpy 的知识对于全栈开发人员来说是很重要的。

4.Keras

什么是 Keras?

Keras 被认为是 python 中最酷的机器学习库之一。它提供了一种更容易表达神经网络的机制。Keras 还为编译模型、处理数据集、图形可视化等提供了一些最佳实用程序。

在后端,Keras 在内部使用 Theano 或 TensorFlow。也可以使用一些最流行的神经网络,如 CNTK。当我们将其与其他机器学习库进行比较时,Keras 的速度相对较慢,因为它使用后端基础设施创建计算图,然后利用它执行操作。Keras 的所有模型都很轻简。

Keras 的特征

  • 它在 CPU 和 GPU 上都能顺利运行。

  • Keras 支持几乎所有的神经网络模型——全连接、卷积、池化、循环、嵌入等。此外,这些模型可以结合起来构建更复杂的模型。

  • Keras 本质上是模块化的,具有难以置信的表现力、灵活性和创新性研究的能力。

  • Keras 是一个完全基于 python 的框架,它使调试和探索变得容易。

Keras 被用在哪里?

你已经在不断地与使用 Keras 构建的产品进行交互—Netflix、Uber、Yelp、Instacart、Zocdoc、Square 和许多其他公司都在使用它。它在初创企业中尤其受欢迎,初创企业将深度学习放在其产品的核心位置。

Keras 包含许多常用的神经网络构建块的实现,例如层、目标、激活函数、优化器和一系列工具,以使图像和文本数据的处理更加容易。

此外,它还提供许多预处理的数据集和预训练的模型,如 MNIST, VGG, Inception, SqueezeNet, ResNet 等。

Keras 也是深度学习研究人员的最爱。大型科学组织,特别是 CERN and NASA 的研究人员尤其偏爱 Keras。

5.PyTorch

什么是 PyTorch?

PyTorch 是最大的机器学习库,它允许开发人员以 GPU 的加速度执行 tensor 计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch 还提供了丰富的 API 来解决与神经网络相关的应用程序问题。

这个机器学习库是基于 Torch 的,它是一个用 C 语言实现的开源机器库,在 Lua 中进行了封装。

此机器学习库(python)于 2017 年推出,自其问世以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。

PyTorch 的特性

  • 端到端 Hybrid

一种新的混合前端,提供了易于使用和具有灵活性的 Eager Mode,同时为了速度,无缝过渡到 graph mode,在 C++运行环境中非常实用。

  • 分布式训练

利用本地支持异步执行集体操作和点对点通信(Python 和 C++),优化研究和生产中的性能。

  • python 优先

PyTorch 不是一个将 python 绑定到 C++框架的工具。它的构建是为了深入集成到 python 中,以便可以与流行的库和包(如 Cython 和 Numba)一起使用。

  • 库和工具

一个由研究人员和开发人员组成的活跃社区已经建立了一个丰富的工具和库的生态系统,用于扩展 PyTorch 并支持从计算机视觉到强化学习等领域的开发。

PyTorch 被用在哪里?

PyTorch 主要用于自然语言处理等领域的应用程序。

它主要是由 Facebook 的人工智能研究小组开发的,Uber 的概率编程软件「Pyro」就建立在它的基础之上。

PyTorch 在很多方面都优于 TensorFlow,最近它得到了很多关注。

6.LightGBM

什么是 LightGBM?

梯度增强是最好的和最流行的机器学习(ML)库之一,它可以帮助开发人员使用重新定义的基本模型,即决策树来构建新的算法。因此,有专门的库可以快速有效地实现这种方法。

这些库包括 LightGBM, XGBoost 和 CatBoost。这些库之间存在相互竞争的关系,它们都有助于解决常见问题,可以以几乎相似的方式使用。

LightGBM 的特点

  • 计算速度快,生产效率高。

  • 直观,易于使用。

  • 比其他许多深度学习库更快地训练。

  • 在遇到 NaN 值和其他规范值时不会产生错误。

LightGBM 被用在哪里?

这个库提供了高度可扩展、优化和快速的梯度增强实现,这使得它在机器学习开发人员中很受欢迎。大多数机器学习全栈开发人员通过使用这些算法赢得了机器学习竞赛。

7.Eli5

什么是 Eli5?

通常,机器学习模型预测的结果并不准确,python 内置的机器学习库 Eli5 有助于克服这一挑战。它是可视化和调试所有机器学习模型的组合,并跟踪算法的所有工作步骤。

Eli5 的特点

此外,Eli5 还支持其他库,包括 xgboost、lightning、scikit-learn 和 sklearn-crfsite。所有上述库中额每一个都可以执行不同的任务。

Eli5 被用在哪里?

  • 在短时间内需要进行大量计算的数学应用

  • Eli5 在和其他 Python 包存在依赖关系的情况下发挥着至关重要的作用

  • 在各个领域的传统应用程序实现新方法

8.SciPy

什么是 SciPy?

SciPy 是一个面向应用程序开发人员和工程师的机器学习库。但是,你仍然需要知道 SciPy 库和 SciPy 堆栈之间的区别。SciPy 库包含用于优化、线性代数、集成和统计的模块。

SciPy 的特点

  • SciPy 库的主要特点是它是使用 Numpy 开发的,它的数组充分利用了 Numpy。

  • 此外,SciPy 还使用其特定的子模块提供了所有有效的数值程序,如优化、数值积分和许多其他程序。

  • 所有 SciPy 子模块中的所有功能都有具体的文档注释。

SciPy 被用在哪里?

SciPy 是一个使用 Numpy 来解数学函数的库。SciPy 使用 Numpy 数组作为基本数据结构,并附带用于科学编程中各种常用任务的模块。

SciPy 可以轻松地处理线性代数、积分(微积分)、常微分方程求解和信号处理等任务。

9.Theano

什么是 Theano?

Theano 是一个用于计算多维数组的计算框架机器学习库。它的工作原理与 TensorFlow 相似,但不如 TensorFlow 有效,因为它无法适应生产环境。

此外,Theano 也可以在与 TensorFlow 类似的分布式或并行环境中使用。

Theano 的特点

  • 与 Numpy 紧密集成:能够在无编译函数中使用完整的 Numpy 数组

  • 高效地使用 GPU:比 CPU 执行数据密集型计算要快得多

  • 有效的符号区分:Theano 为具有一个或多个输入的函数求导数

  • 速度和稳定性优化:即使在 x 非常小的情况下,也能求出 log(1+x)的正确答案。这只是一个可以证明 Theano 稳定性的例子

  • 动态 C 代码生成:比以前更快地评估表达式,从而大大提高效率

  • 广泛的单元测试和自验证:检测和诊断模型中多种类型的歧义和错误

Theano 被用在哪里?

Theano 表达式的实际语法是符号化的,这对于习惯于常规软件开发的初学者来说是很不方便的。具体来说,表达式是以抽象的方式定义、编译的,然后直接用于计算。

它是专门为处理深度学习使用的大型神经网络算法所需的计算而设计的。它是同类库中最早的一个(在 2007 年就开始开发了),被认为是深度学习研究和开发的行业标准。

Theano 目前正被用于多个神经网络项目中,而且随着时间的推移,Theano 的普及率也在不断提高。

10.Pandas

什么是 Pandas?

Pandas 是 Python 中的一个机器学习库,它提供高级的数据结构和各种各样的分析工具。这个库的一个重要特性是能够使用一个或两个命令转换复杂的数据操作。Pandas 有许多内置的分组、数据组合、过滤和时间序列功能的函数。

Pandas 的特征

Pandas 确保了整个数据处理的过程更加容易。对诸如重索引、迭代、排序、聚合、连接和可视化等操作的支持是 Pandas 的特色亮点之一。

Pandas 被用在哪里?

目前,Pandas 库的版本较少,其中包括数百个新功能、错误修复、增强和 API 更改。Pandas 的改进在于它能够对数据进行分组和排序,为使用的方法选择最适合的输出,并为执行自定义类型的操作提供支持。

当使用 Pandas 的时候,数据分析占了很大的比重。但是,当与其他库和工具一起使用时,Pandas 确保了高性能和良好的灵活性。

总结

python 中的 10 大顶级机器学习库的介绍就到这里啦。如果文章对你有帮助,欢迎转发/点赞/收藏~

---------♥---------

声明:本内容来源网络,版权属于原作者

图片来源网络,不代表本公众号立场。如有侵权,联系删除

AI博士私人微信,还有少量空位

如何画出漂亮的深度学习模型图?

如何画出漂亮的神经网络图?

一文读懂深度学习中的各种卷积

点个在看支持一下吧

机器学习必知的10个python库

...仅做学术分享,如有侵权,联系删除转载于:机器学习算法与Python实战Python是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。python在开发人员中流行的原因有很多。然而,最重要的一... 查看详情

机器学习必知的10个python库

...仅做学术分享,如有侵权,联系删除转载于:机器学习算法与Python实战Python是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。python在开发人员中流行的原因有很多。然而,最重要的一... 查看详情

如何系统地学习numpy?初学者必知的numpy基础知识

一、Numpy介绍Numpy(NumericalPython)是一个开源的Python科学计算库,用于快速处理任意维度的数组。Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。Numpy使用ndarray对... 查看详情

python工程师求职必知的经典面试题分享

...求旺盛,是很多入行IT人士首选的编程语言。然而在学习理论技能、积累实战经验之余,想要拿到高薪,我们一定要经历一道坎,那就是面试。接下来小编就给大家分享Python工程师求职必知的经典面试题,助力... 查看详情

python机器学习库哪个比较好些

...:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。Scikit-LearnStatsmodelsPyMCPyMVPA:PyMVPA是另一个统计学习库,API上与Scikit-learn很像。包含交叉验证和诊断工具,但是没有Scikit-learn全面。ShogunGensimOra... 查看详情

这10个python机器学习库,你用过哪些?

来源:量子位1.AwkwardArray根据官方介绍,AwkwardArray用于嵌套的、大小不一的数据,包括任意长度的列表、记录、混合的类型和缺失数据,使用起来类似NumPy。看起来像是升级版的NumPy呀。果然,不同长度的数组... 查看详情

高效javascript编程必知的5个数组方法

...关于数组最重要的5个方法,一起来看看吧,希望对大家学习javascript有所帮助。 Array.forEach() .forEach() 方法能够方便的让你 遍历数组里的每个元素 ,你可以在回调函数里对每个元素进行操作。.forEach() 方法没有返回... 查看详情

python机器学习方向的第三方库是啥

Python开发工程师必知的十大机器学习库:一、Scikit-Learn在机器学习和数据挖掘的应用中,Scikit-Learn是一个功能强大的Python包,我们可以用它进行分类、特征选择、特征提取和聚集。二、StatsmodelsStatsmodels是另一个聚焦在统计模型... 查看详情

学习前端前必知的——http协议详解

原文参考博客园http://kb.cnblogs.com/page/130970/#statecode什么是HTTP协议  协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从... 查看详情

小白学python:这10个pandas函数属于必知必会!(代码片段)

Hello大家好,今天我将和大家一起学习竞赛中的各种基础知识点,从基础库使用到具体的比赛案例。今天我们将学习Pandas,一个非常强大的数据分析、数据清洗和读取的工具,也是在Kaggle竞赛中必备的库。在这篇... 查看详情

python必知的20个骚操作!(代码片段)

以下为译文:Python是一个解释型语言,可读性与易用性让它越来越热门。正如Python之禅中所述:优美胜于丑陋,明了胜于晦涩。在你的日常编码中,以下技巧可以给你带来意想不到的收获。   ?字符串反转 下面的... 查看详情

成为单片机高手必知的三个步骤

...入门,也就是从哪一部份,按照怎样的步骤进行学习。在摸索学习步骤的过程浪费时间的同时也会造成学习兴趣的降低。为了帮助大家解决这种情况。第一步:基础理论知识学习基础理论知识包括模拟电路、数字电路... 查看详情

程序员必知的分布式容错和降级技术

...提供自适应的保护机制;易用的控制台,提供实时监控、机器发现、规则管理等能力; 完善的扩展性设计,提供多样化的SPI接口,方便用户根据需求给Sentinel添加自定义的逻辑。对比以上几种解决方案Nginx和Redis具备一定的分... 查看详情

ios小白必知的gcd术语

...验影响重大,也是面试中的考察重点。 自己虽然以前有学习iOS多线程的部分,但由于当时对iOS开发还处于懵懂阶段,很多地方理解可能均有问题,遂查阅一些资料重温了GCD的相关内容,并撰写此文已记录自己的学习路程。 什么... 查看详情

警惕python中少为人知的10个安全陷阱(代码片段)

作者:DennisBrinkrolf译者:豌豆花下猫@Python猫原题:10UnknownSecurityPitfallsforPython英文:https://blog.sonarsource.com/10-unknown-security-pitfalls-for-python声明:本翻译是出于交流学习的目的&#x 查看详情

我的多线程-多线程必知的n个常识

多线程的基础知识有哪些?一根线:正在执行的程序主体只有一个多线程实例:GUI应用程序(查找和执行操作并行),耗时间的io操作,多个客户端一个服务器,什么是 顺序、并行、并发。  什么是并发顺序、什么是... 查看详情

javascript全讲-必知的特性

上篇讲完JS面向对象的特性,我们今天就来聊聊它的其它特性。JS面向对象的特性较为隐晦,真正使用也是比較少的。而今天我们要讲的,却是在实际开发中常常遇到的特性。1.函数式编程多数人并不知道“函数式编程”是什么... 查看详情

测试人员必知的快速测试方法.

对有些测试经验的测试人士来说,都有总结或掌握一些小众的测试技巧。而快速测试是一组基于风险的测试方法,是针对某些常见的软件缺陷,实施专项攻击,一般不需要大量的测试时间,只了解产品基本情况就可以在短时间内... 查看详情