泊天冷月 发表于 2023-7-12 10:24:25

构建您的AI时代刀兵库——常用的机器学习相关Python库

在本文中,我们将介绍一系列Python中的第三方库,开发人员可以使用这些库来清洗、分析和可视化数据,实现机器学习相关的各种应用。

我们将会介绍以下 10 个库:

TensorFlow
Scikit-Learn
NumPy
Keras
PyTorch
LightGBM
Eli5
SciPy
Theano
Pandas

Python是目前最为风行,使用广泛的编程语言之一,已经代替了业界许多编程语言的地位。Python在开发人员中受欢迎的原因有很多,此中最重要的一个原因就是Python有大量可供用户使用的开源第三方库。Python的语法的简洁特性吸引了许多开发人员、厂商为其创建各种功能库,便操作户使用,此中就包罗了大量机器学习类的库。由于有大量的开源库,Python在机器学习行业中备受欢迎。

http://pic4.zhimg.com/v2-ef52ebf000861dcdcdd93f3116d9b123_r.jpg

<hr/>我们即将介绍的第一个库是来自Google的TensorFlow。

TensorFlow



TensorFlow 是什么?

如果您目前正在使用Python进行机器学习项目,那么您很可能已经风闻过这个风行的开源库。该库是 Google 与 Brain Team 合作开发的。Google 的每一个机器学习应用几乎都有 TensorFlow 的影子。

TensorFlow 的工作方式类似于一个计算库,用于编写大量张量运算的法式。由于神经网络可以很容易地暗示为计算图,因此它们可以用 TensorFlow 作为对张量(Tensor)的一些列操作来实现。张量可以视为表述数据的N维矩阵。

TensorFlow 的特点


[*]TensorFlow 针对速度进行了优化,并操作 XLA 等技术实现快速线性代数运算。
[*]响应式构造:使用TensorFlow,我们可以轻松地将计算图的每一部门进行可视化,目前在使用 NumPy 或 SciKit 时并没有这个选项。
[*]灵活性:TensorFlow 的一个非常重要的特性是,它的操作非常灵活。这意味着它实现了模块化,对于我们想要使其独立的部门,它可以提供这一选项。
[*]易于训练:对于分布式计算,它可以很容易地在 CPU 长进行训练,也可以在 GPU 长进行训练。
[*]并行化神经网络训练:TensorFlow 提供了管道。从某种意义上说,我们可以通过多个 GPU来训练多个神经网络,这使得模型在大型系统上非常高效。
[*]大型社区:因为 TensorFlow 是由 Google 开发的,所以有大量软件工程师和爱好者在不竭改良 TensorFlow 功能和性能。
[*]开源:这个机器学习库最好的处地址于它是开源的,所以只要有互联网,任何人都可以使用它。

TensorFlow 在哪里使用?

实际上我们每天都在使用 TensorFlow,例如 Google 语音搜索或 Google 相册这样的应用都使用了TensorFlow训练的模型。

在 TensorFlow 中创建的所有库都是用 C 和 C++ 编写的。不外,它还有一个复杂的 Python 前端。我们的 Python 代码将会被编译,然后在使用 C 和 C++ 构建的 TensorFlow 分布式执行引擎上执行。
<hr/>
Scikit-Learn



Scikit-Learn 是什么?

Scikit-Learn是一个与 NumPy 和 SciPy 相关的 Python库。它被认为是措置复杂数据的首选库之一。这个库正在进行频繁升级。此中一个升级是提供交叉验证功能,这可以提高其使用多个度量的能力。许多机器学习模型训练方式,如逻辑回归和比来邻方式,都在进行改良。

Scikit-Learn 的特点


[*]交叉验证:有多种方式可以查验监督机器学习模型对不成见数据的准确性。
[*]无监督学习算法:Scikit-Learn提供了大量的机器学习算法,从聚类、因子分析和主成分分析到无监督神经网络。
[*]特征提取:用于从图像和文本中提取特征(例如词袋“Bag-of-words”)。

Scikit-Learn 在哪里使用?

它可以应用于各种尺度机器学习和数据挖掘任务,如降维、分类、回归、聚类和模型选择等。
<hr/>
NumPy

http://pic2.zhimg.com/v2-e297e96ece7dec45a7153fe64f96098d_r.jpg
NumPy 是什么?

NumPy 被认为是 Python 中受欢迎的机器学习库之一。

TensorFlow 和其他库在内部使用 NumPy 在张量上执行多个操作。数组接口是 NumPy 最好也是最重要的特性。

NumPy 的特点


[*]交互性:NumPy 交互性强,易于使用。
[*]数学计算:使复杂的数学计算变得非常简单。
[*]直不雅观性:使编码和概念的掌握变得非常容易。
[*]更新及时:得益于广泛的使用,因此有大量的开源贡献。

NumPy 在哪里使用?

NumPy 的接口可用于将图像、声波和其他二进制原始流表达为 N 维数组。
<hr/>
Keras

http://pic2.zhimg.com/v2-a409f6620ff11adf3d5205613c13f5c1_r.jpg

Keras 是什么?

Keras 被认为是 Python 中最酷的机器学习库之一。它提供了一种更简单的机制来表达神经网络。Keras 还为编译模型、措置数据集、图形可视化等提供了一些实用法式。

在后端,Keras在内部使用 Theano 或 TensorFlow,也可以使用一些最风行的神经网络,如 CNTK。与其他机器学习库斗劲,Keras的速度相对较慢。因为它是通过使用后端架构创建计算图,然后操作它来执行操作的。不外,Keras 的所有模型都是可移植的。

Keras 的特点


[*]Keras 在 CPU 和 GPU 上都能顺利运行。
[*]Keras 撑持几乎所有的神经网络模型,包罗完全连接的、卷积的、池化的、递归的、嵌入的等等。此外,这些模型还可以组合起来构建更为复杂的模型。
[*]Keras 在本质上是模块化的,具有难以置信的表示力、灵活性,并易于创新研究。
[*]Keras 是一个完全基于 Python 的框架,可以便利地进行调试和改写。

Keras 在哪里使用?

我们实际已经在不竭地与Keras 开发的功能进行交互:它在 Netflix、Uber、Yelp、Instacart、Zocdoc、Square等其他许多公司都有应用。Keras 在那些将深度学习作为产物核心的草创公司中出格受欢迎,同时也是深度学习研究人员的最爱。大型科学组织,出格是CERN(欧洲核子研究中心)和 NASA(美国国家航空航天局)的研究人员也采用了 Keras。

Keras 包含许多常用的神经网络构建块的实现,例如层、方针、激活函数、优化器和一系列东西,使图像和文本数据的措置变得更加容易。

此外,Keras 还提供了许多预措置的数据集和预训练模型,如 MNIST、VGG、Inception、SqueezeNet、ResNet 等等。
<hr/>
PyTorch



PyTorch 是什么?

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

这个机器学习库是基于 Torch 的,Torch 是一个用 C 语言实现的开源机器学习库,在 Lua 中有个包装器。这个用 Python 编写的机器学习库是 2017 年推出的,自推出以来,吸引了越来越多的机器学习开发人员。

PyTorch 的特点


[*]混合前端:新的混合前端在 Eager 模式(动态图模式)下提供了易用性和灵活性,同时在 C++ 运行时环境中无缝过渡到图形模式,以实现速度、优化和功能。
[*]分布式训练:通过操作 Python 和 C++ 提供的异步执行调集操作和对等通信的当地撑持,优化研究和出产中的性能。
[*]Python 优先:PyTorch 并非绑定到单一 C++ 框架中的 Python。它是为了深入集成到 Python 中而构建的,因此它可以与风行的库和包(如 Cython 和         Numba 等)一起使用。
[*]库和东西:一个由研究人员和开发人员组成的活跃社区,成立了一个丰硕的东西和库生态系统,用于扩展 PyTorch ,并撑持从计算机视觉到强化学习等范围的开发。

PyTorch 在哪里使用?

PyTorch主要用于自然语言措置等应用。PyTorch在早期主要是由 Facebook 的人工智能研究小组开发的。Uber的概率编程“Pyro”软件就是成立在这个基础上的。PyTorch 在很多方面都试图超越 TensorFlow,比来得到了很多存眷。
<hr/>

LightGBM

http://pic2.zhimg.com/v2-435f980316950520e7883b9870441bd1_r.jpg

LightGBM 是什么

梯度提升(Gradient Boosting)是最风行的机器学习算法之一,它通过使用从头定义的基本模型和决策树来辅佐开发人员构建新的算法。因此,有一些专门的库是为快速有效地实现这种方式而设计的。包罗微软设计的LightGBM。

LightGBM与XGBoost 、CatBoost成为了解决梯度提升算法问题的竞争对手,可以以几乎相似的方式加以操作。

LightGBM 的特点


[*]计算速度快,出产效率高。
[*]直不雅观,易于使用。
[*]比许多其他深度学习库有更快的训练。


[*]在考虑 NaN 值和其他规范值时不会发生错误。

LightGBM 在哪里使用?

这个库提供了高度可扩展、优化和快速的梯度提升实现,这使得它在机器学习开发人员中备受欢迎。因为许多机器学习全栈开发人员是通过使用这些算法在机器学习竞赛中获胜的。


<hr/>Eli5

http://pic4.zhimg.com/v2-f733fd17baaaa9e749d7bc874f6132bf_r.jpg
Eli5 是什么?

大大都情况下,机器学习模型的预测成果并不准确,而内置 Python 的 Eli5 机器学习库有助于克服这一挑战。它结合了可视化和调试所有的机器学习模型,并跟踪算法的所有工作法式。

Eli5 的特点

Eli5 撑持 XGBoost、lighting、scikit-learn 和 sklearn-crfsuite 库。上面提到的所有库都可以用于执行分歧的机器学习任务。

Eli5 在哪里使用?

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

在与其他 Python 包存在依赖关系的情况下,Eli5 扮演着至关重要的角色。

遗留应用和在各个范围实施较新的方式。

<hr/>
SciPy



SciPy 是什么?

SciPy 是一个面向应用法式开发人员和工程师的机器学习库。我们需要了解 SciPy 库和 SciPy 栈之间的区别。SciPy 库包含用于优化、线性代数、积分和统计的模块。

SciPy 的特点

SciPy 库的主要特点是使用 NumPy 开发,其数组最大限度地操作了 NumPy。此外,SciPy 使用其特定子模块提供了所有高效的数值例程,比如优化、数值积分和许多其他例程。

所有 SciPy 子模块中的所有函数都有良好的文档说明。

SciPy 在哪里使用?

SciPy 是一个使用 NumPy 求解数学函数的库。SciPy 使用 NumPy 数组作为基本数据布局,并附带用于科学编程中各种常用任务的模块,包罗线性代数、微积分、常微分方程求解和信号措置等任务,都可以通过 SciPy 轻松措置。

<hr/>
Theano



Theano 是什么?

Theano 是 Python 顶用于计算多维数组的计算框架机器学习库。Theano 的工作方式与 TensorFlow 类似,但效率不如 TensorFlow。

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

Theano 的特点


[*]与 NumPy 紧密集成:能够在 Theano 编译的函数中完全使用 NumPy 数组。
[*]GPU 的透明使用:执行数据密集型计算要比 CPU 上快得多。
[*]高效的符号微分:Theano 为具有一个或多个输入的函数求导。
[*]速度和不变性的优化:即使 x 非常小,也能获得 log(1+x) 的正确答案。这只是证明 Theano 不变性的一个例子。
[*]动态 C 代码生成:计算表达式的速度比以往都快,从而极大提高效率。
[*]广泛的单元测试和自我验证:检测和诊断模型中的多种类型的错误和歧义。

Theano 在哪里使用?

Theano 表达式的实际语法是符号化的,这可能会让习惯正常软件开发的初学者感到不适。具体来说,表达式是以抽象的方式进行定义、编译的,然后实际用于计算。

Theano 是专门为用于深度学习的大型神经网络算法的计算类型而设计的。它是最早的类库之一(2007 年开始开发),被认为是深度学习研究和开发的行业尺度。Theano 目前被用于多个神经网络项目,随着时间的推移,Theano 的普及率也在不竭提高。

<hr/>
Pandas



Pandas 是什么?

Pandas是 Python中的一个机器学习库,它提供高级的数据布局和各种各样的分析东西。这个库最大的特性之一是能够使用一个或两个命令转换复杂的数组操作。Pandas有很多内置的分组、组合数据、过滤以及时间序列功能的方式。所有这些方式都有超卓的速度指示器。

Pandas 的特点

Pandas 使操作数据的过程变得更容易。对从头索引、迭代、排序、聚合、连接和可视化等操作的撑持是 Pandas 的亮点之一。

Pandas 在哪里使用?

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

在其他事项中,当涉及到使用 Pandas时,数据分析是一大亮点。而当与其他库和东西一起使用时,Pandas 确保了高度的功能性和良好的灵活性。

— — — — — — E N D — — — — — —
往期文章:
Numpy措置tick级别数据技巧
真正赚钱的期权策略曲线是这样的
多品种历史波动率计算
如何实现全市场自动盯盘
AI是怎样看懂研报的
真格量化策略debug秘籍
真格量化对接实盘交易
常见高频交易策略简介

如何用撤单函数改良套利成交

Deque提高措置队列效率

策略编程选Python还是C++

如何用Python担任机制节约代码量

十大机器学习算法
如何调用策略附件数据

如何使用智能单

如何扫描全市场跨月价差

如何筛选策略最适合的品种

活用订单类型规避频繁撤单风险

真格量化回测撮合机制简介

如何调用外部数据

如何措置回测与实盘分歧

如何操作趋势必然终结获利

常见量化策略介绍

期权交易“七宗罪”

波动率交易介绍

推高波动率的因素

波动率的预测之道

趋势交易面临挑战
如何构建常识图谱
机器学习就是现代统计学

AI技术在金融行业的应用

如何避免模型过拟合

低延迟交易介绍

架构设计中的编程范式

交易所视角下的套利指令撮合

距离概念与特征识别

气象风险与天气衍生品

设计量化策略的七个“大坑”

云计算在金融行业的应用

机器学习模型评估方式
真格量化制作期权HV-IV价差
另类数据介绍

TensorFlow中的Tensor是什么?

机器学习的经验之谈

用yfinance调用雅虎财经数据

容器技术如何改良交易系统
Python调用C++
如何选择数据库代办代理
统计套利揭秘

一个Call搅动市场?让我们复习一下波动率策略
如何用真格量化设计持仓排名跟踪策略
还不理解真格量化API设计?我们不妨参考一下CTP平台
理解同步、异步、阻塞与非阻塞
隐波相关系数和偏度——高维风险的守望者
Delta中性还不够?——看看如何设计Gamma中性期权策略

Python的多线程和多进程——从一个爬虫任务谈起
线程与进程的区别
皮尔逊相关系数与历史K线匹配

Python2和Python3的兼容写法
Python代码优化技巧

理解Python的上下文打点器

如何写出更好的Python代码?这是Python软件基金会的建议
评估法式化模型时我们容易忽视的指标

看看如何定位Python法式性能瓶颈

什么是Python的GIL

投资研究中的大数据分析趋势及应用

理解CTP中的回调函数

如何围绕隐含波动率设计期权交易策略
看看如何用Python进行英文文本的情感分析
算法交易的分类

Python编码的最佳实践总结

什么是波动率锥?如何用波动率锥设计期权策略?
期权的波动率策略与时间价值收集策略对比

期权用于套期保值和无风险套利

隐含波动率对期权策略的影响

卖出期权交易的风险打点原则和技巧
期权交易中的“大头针”风险
期权做市商策略简介

精细化您的交易——交易成本评估与交易执行策略
海外市场交易执行策略的实践
设计期权套期保值方案时应注意的问题
美式期权、欧式期权斗劲分析——定价与风险打点

真格量化可访谒:
https://quant.pobo.net.cn



真格量化微信公众号,长按存眷:


遇到了技术问题?欢迎插手真格量化Python技术交流QQ群726895887

页: [1]
查看完整版本: 构建您的AI时代刀兵库——常用的机器学习相关Python库