常用术语词汇表#

下面的术语表定义了贯穿 sktime 使用的常见术语和 API 元素。

Bagging:#

一种集成学习技术,其中多个模型在训练数据的不同的子集上进行训练,并通过某种规则(例如,多数投票)对单个模型的输出进行平均,以获得共识预测。

mtype#

sktime 支持多种内存中的时间序列数据和其他对象的规范。这种内存中的规范称为 mtype``(即“机器类型”的缩写)。每个 ``mtype 由一个字符串表示,例如 pd-multiindex,它定义了数据格式和数据结构。例如,pd-multiindex mtype 是一组时间序列的集合,表示为一个 2 级 MultiIndexpandas.DataFrame,列表示变量,行由 (实例, 时间点) 索引,其中 时间点 级别必须是类似范围或日期时间的形式。每个 mtype 实现了一种抽象数据类型,即 (数据) scitype,例如 Panel,它指的是一组时间序列的抽象类型,具有实例、时间点和变量维度。在这种术语中,pd-multiindex mtype 实现了 (抽象) Panel scitype。可以使用 sktime.datatypes.check_is_mtype 函数检查数据容器是否符合给定的 mtype;所有 mtype 都可以在 sktime.datatypes.MTYPE_REGISTER 中列出。有关更多详细信息,请参阅 数据类型和数据集用户指南 :doc:</examples/AA_datatypes_and_datasets>

scitype#

科学类型的缩写,表示 sktime 对象、数据容器或估计器的抽象类型。估计器科学类型的一个例子是 "forecaster",它表示具有(抽象) fitpredictupdate 方法的预测器的抽象概念。数据科学类型的一个例子是 Panel,表示时间序列索引集合的抽象概念。科学类型由字符串表示,并由具体类型实现。对于数据容器,具体类型是 mtype`(参见那里),对于估计器,具体类型是 python 基础接口,例如由 ``BaseForecaster`BaseClassifier 定义的接口。有效的估计器科学类型及其对应的基础类在 sktime.registry.BASE_CLASS_SCITYPE_LIST 中列出。可以使用 sktime.registry.all_estimators 列出给定科学类型的所有估计器,并且可以通过 sktime.registry.scitype 工具推断给定估计器的科学类型。可以使用 sktime.datatypes.check_is_scitype 工具检查数据科学类型具体实现的合规性;对于估计器,合规性检查使用 sktime.utils.check_estimator。有关数据科学类型的更多详细信息,请参阅 mtype。有关估计器科学类型的更多详细信息,请参阅关于单个学习任务的用户指南。

估计器#

特定 scitype 的算法,实现了由 scitype 定义的 python 类接口。每个估计器对应于具体的类,实现了由 scitype 基类定义的接口。例如,ARIMA 类是 scitype "forecaster" 的估计器。用户应区分 python 类(可以看作是蓝图)和实例(从蓝图创建的具体对象,具有特定的参数设置,可以拟合或应用于数据)。在 scikit-learn 的术语中,类(蓝图)和实例(具体对象)通常都被称为 “估计器”,这可能会有些混淆。用户还应注意软件工程术语中 “具体类” 和 “具体对象” 的区别,前者是实现 BaseForecaster``("抽象类")的 ``ARIMA``(python 类),后者是 python 类的实例。估计器是具有 ``fit 方法的对象——并非所有 sktime 中的 scitype 都是估计器,例如,性能指标。

内生的#

在学习任务中,内生变量由外生变量或变量本身的过去时间点决定。也称为因变量或目标。

单变量时间序列#

单一时间序列。虽然单变量分析通常只使用序列本身包含的信息,但单变量时间序列回归和预测也可以包括 外生 数据。

变量#

指的是一些感兴趣的测量。变量可以是横截面的(例如,时间不变的测量,如患者的出生地)或 时间序列

复合估计器#

一个由多个其他组件估计器组成的 估计器 ,这些组件估计器可以变化。例如,一个由转换器和预测器组成的管道。该术语既可以指类,也可以指其实例。对于复合估计器,一个 标签 可以依赖于组件,例如 capability:missing_data,以及一个依赖于组件科学类型的 科学类型 ,例如,管道的科学类型是预测器还是分类器,取决于其最后一个元素是预测器还是分类器。熟悉软件工程模式的用户应注意,该术语可能与“复合模式”有不同的含义:在 scikit-learn 的上下文中,“复合估计器”结合了复合模式和策略模式。

外源性#

在学习任务中,外生变量是影响任务内生变量的外部因素,其影响模式必须被学习。也被称为自变量或特征。

多元时间序列#

多个时间序列。通常针对同一观测单位进行观察。多变量时间序列通常用于指代那些随着时间共同演变的序列。这与 单变量时间序列 依赖于 外生 数据的情况相关,但有所不同。

季节性#

当一个 时间序列 受到季节性特征(如一年中的时间或一周中的某一天)的影响时,它被称为季节性模式。一个季节的持续时间是固定且已知的。

实例#

被研究实体集合中的一个成员,ML实践者希望对其进行泛化。例如,患者、化学过程运行、机器、国家等。根据学科和上下文,也可称为样本、示例、观察或记录。

工具箱#

一组相关且可重用的功能,从业者可以导入这些功能来编写应用程序。工具箱强调代码重用。与 框架应用程序 相比较。

应用程序#

一个专用的代码片段,从业者编写它来解决特定的应用问题。与 工具箱框架 相比较。

扩展模板#

sktime 设计为易于扩展,第三方和第一方可以通过符合API的对象进行添加。为了促进这一点,sktime 提供了一套扩展模板,供高级用户实现他们自己的对象,如预测器、转换器、分类器。扩展模板位于 extension_templates 文件夹中,这些是填空模板,可用于创建符合 sktime API 的新对象。每个模板都特定于要实现的 scitype 对象,并且对于给定的 scitype,根据简单性与功能丰富性有不同的模板。模板指导高级用户设置 tags,并实现 scitype 特定的方法。这些方法通常是私有的,例如 _fit_predict,而样板代码由基类处理。有关第一方和第三方扩展的进一步详情和逐步教程,请参阅 实现估计器 指南。对于熟悉软件工程模式的高级用户:扩展模板利用模板模式进行扩展契约,确保符合策略模式的用户契约,由 scitype 特定接口定义。

时间序列#

数据中,变量 的测量值按时间顺序排列,或有一个索引指示观测值在数值序列中的位置。

时间序列分类#

一个专注于利用时间序列与分类目标变量之间跨实例模式的学习任务。

时间序列分解:#

一种将时间序列分解为其基本组成部分(如趋势、季节性和噪声)的技术。这对于理解数据中的模式以及分别对每个组成部分进行建模非常有用。

时间序列回归#

一个专注于利用时间序列与连续目标变量之间跨实例模式的学习任务。

时间序列注释#

一个专注于标记时间序列时间点的学习任务。这包括相关的任务,如异常值检测、异常检测、变化点检测和分割。

时间序列聚类#

一个专注于发现由具有相似时间序列的实例组成的群体的学习任务。

时间点#

进行观察的时间点。时间点可能代表一个精确的时间点(时间戳)、一个时间段(例如分钟、小时或天),或者仅仅是一个索引,表示观察值在序列中的位置。

标签#

标签是字符串键值字段,用于标识对象的属性,或为内部样板设置标志。一个标签的例子是 capability:multivariate,这是一个布尔标志,表示对象是否真正支持多变量时间序列。具有特定能力的对象(即通过某些标签值过滤的对象)可以使用 sktime.registry.all_estimators 列出或过滤。在 sktime 中,大多数对象是 scikit-base 对象,并通过 get_tagget_tags 实现标签接口。一些标签仅供内部或扩展者使用,例如 X_inner_mtype,它允许扩展者指定他们希望使用的内部数据容器的 mtype。所有标签及其含义的列表,可以选择性地按它们适用的对象的 scitype 过滤,可以从 sktime.registry.all_tags 获取。关于标签的更多细节,开发者可以在 extension templates 的规范表中找到。

框架#

一组相关且可重用的软件设计模板,从业者可以复制并填写。框架强调设计重用。它们在一个给定的应用领域内捕捉常见的软件设计决策,并将它们提炼成可重用的设计模板。这减少了他们必须做出的设计决策,使他们能够专注于应用的具体细节。这不仅可以让从业者更快地编写软件,而且应用程序将具有相似的结构。框架通常提供额外的功能,如 工具箱。与 工具箱应用程序 进行比较。

模型选择:#

为给定任务选择最佳机器学习模型的过程。这可能涉及在验证集上比较不同模型的性能,或使用网格搜索等技术为给定模型找到最佳超参数。

泛化:#

预测模型在未见数据上表现良好的能力。一个过度拟合训练数据的模型可能泛化能力不佳,而一个欠拟合的模型可能无法捕捉数据中的潜在模式。

特征提取:#

一种从原始数据中提取有用信息的技术。在时间序列分析中,这可能涉及将数据转换到频域,将信号分解为多个分量,或提取统计特征。

科学类型#

参见 科学类型

简化#

归约指的是将一个给定的学习任务分解为更简单的任务,这些任务可以组合起来创建原始任务的解决方案。在 sktime 中,归约用于允许一个学习任务被改编为另一个任务的解决方案。

表格#

是一个设置,其中每个 时间点单变量时间序列 被测量的每个实例都被视为特征,并作为原始数据类型存储在 DataFrame 的单元格中。例如,有 N 个 实例 的时间序列,每个实例有 T 个 时间点,这将产生一个形状为 (N, T) 的 pandas DataFrame:N 行,T 列。

超参数:#

机器学习模型在构建时设置的参数。通常,这会影响模型的性能。例如,神经网络中的学习率、随机森林中的树的数量或线性模型中的正则化参数。

趋势#

当数据显示长期增加或减少时,这被称为趋势。趋势也可以是非线性的。

集成学习:#

一种技术,其中多个模型被组合以提高预测模型的整体性能。

面板时间序列#

一种时间序列数据形式,其中多个观测单位观察到相同的时间序列。观测到的序列可能由 单变量时间序列多变量时间序列 组成。因此,数据随时间、观测单位和序列(即变量)而变化。

预测#

一个专注于预测时间序列未来值的学习任务。更多详情,请参阅 用户指南介绍