常用术语表#

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

应用#

实践者为解决特定应用问题而编写的单用途代码片段。与工具箱框架进行比较。

Bagging:#

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

复合评估器#

一种由多个其他可变组件评估器组成的评估器。一个例子是包含 transformer 和 forecaster 的管道。该术语可以指代类及其实例。对于复合评估器,标签可以取决于组件,例如 capability:missing_data,而科学类型 (scitype) 可以取决于组件的科学类型,例如,管道的科学类型取决于其最后一个元素是 forecaster 还是 classifier,从而成为 forecaster 或 classifier。熟悉软件工程模式的用户应注意,此术语的使用方式可能与“复合模式”不同:在 scikit-learn 的上下文中,“复合评估器”结合了复合模式和策略模式。

内生变量#

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

集成学习:#

将多个模型组合起来以提高预测模型整体性能的技术。

评估器#

具有特定科学类型 (scitype) 的算法,实现由该科学类型定义的 Python 类接口。单个评估器对应于具体类,实现由科学类型的基础类定义的接口。例如,ARIMA 类是科学类型 "forecaster" 的评估器。用户应区分作为蓝图的 Python 类和从蓝图创建的、具有特定参数设置并可用于拟合或应用于数据的具体对象(即实例)。有点令人困惑的是,在 scikit-learn 的说法中,类(蓝图)和实例(具体对象)通常都被称为“评估器”。用户还应注意软件工程术语中的“具体类”(即实现 BaseForecaster(“抽象类”)的 ARIMA(Python)类)与“具体对象”(即 Python 类的 Python 实例)之间的区别。评估器是具有 fit 方法的对象 - sktime 中并非所有科学类型的对象都是评估器,例如性能指标。

外生变量#

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

扩展模板#

sktime 设计为易于扩展,支持符合 API 的第三方和第一方添加。为了方便这一点,sktime 提供了一组扩展模板,供高级用户实现自己的对象,例如 forecaster、transformer、classifier。扩展模板位于 extension_templates 文件夹中,这些是可用于创建符合 sktime API 的新对象的填充式模板。每个模板都特定于要实现对象的科学类型 (scitype),并且对于给定的科学类型,根据简单性与功能丰富度,有不同的模板。这些模板指导高级用户设置标签,以及实现特定于科学类型的方法。方法通常是私有的,例如 _fit_predict,而样板代码由基础类负责。有关第一方和第三方扩展的更多详细信息和分步教程,请参阅 实现评估器 指南。对于熟悉软件工程模式的高级用户:扩展模板利用模板模式实现扩展契约,确保符合由特定科学类型接口定义的用户契约的策略模式。

特征提取:#

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

预测#

一种专注于预测时间序列未来值的学习任务。有关更多详细信息,请参阅简介

框架#

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

泛化:#

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

超参数:#

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

实例#

正在研究的实体集合的成员,也是机器学习实践者希望泛化的对象。例如,患者、化学过程运行、机器、国家等。根据学科和上下文,也可能被称为样本、示例、观测或记录。

模型选择:#

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

mtype#

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

多元时间序列#

多个时间序列。通常在同一观察单位上观察。多元时间序列通常用于指代序列随时间一起演变的情况。这与单变量时间序列依赖于外生数据的情况相关但不同。

面板时间序列#

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

规约#

规约指将给定的学习任务分解为可以组合起来解决原始任务的更简单的任务。在 sktime 中,规约用于允许将一个学习任务调整为替代任务的解决方案。

科学类型#

参见 科学类型 (scitype)

scitype#

科学类型 (scientific type) 的缩写,表示 sktime 对象、数据容器或评估器的抽象类型。评估器科学类型的一个例子是 "forecaster",它表示具有(抽象的)fitpredictupdate 方法的 forecaster 的抽象概念。数据科学类型的一个例子是 Panel,表示带有索引的时间序列集合的抽象概念。科学类型由字符串表示,并通过具体类型实现。对于数据容器,具体类型是 mtype(参见该处);对于评估器,具体类型是 Python 基础接口,例如由 BaseForecasterBaseClassifier 定义的接口。有效的评估器科学类型及其相应的基础类列在 sktime.registry.BASE_CLASS_SCITYPE_LIST 中。可以使用 sktime.registry.all_estimators 列出给定科学类型的所有评估器,并且可以使用 sktime.registry.scitype 工具推断给定评估器的科学类型。可以使用 sktime.datatypes.check_is_scitype 工具检查数据科学具体实现的合规性;对于评估器,合规性检查使用 sktime.utils.check_estimator。有关数据 mtype 的更多详细信息,请参阅 mtype。有关数据科学类型的精确规范,请参阅数据格式规范。有关评估器科学类型的更多详细信息,请参阅此处关于各个学习任务的用户指南:笔记本示例

季节性#

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

表格型#

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

标签#

标签是字符串键值字段,用于标识对象的属性或设置内部样板代码的标志。标签的一个例子是 capability:multivariate,这是一个布尔标志,表示对象是否真正支持多元时间序列。具有给定能力的对象(即按特定标签值过滤的对象)可以使用 sktime.registry.all_estimators 进行列表或过滤。在 sktime 中,大多数对象是 scikit-base 对象,并通过 get_tagget_tags 实现标签接口。有些标签仅供内部或扩展器使用,例如 X_inner_mtype,它允许扩展器指定他们希望使用的内部数据容器的 mtype。可以使用 sktime.registry.all_tags 获取所有标签及其含义的列表,可以根据标签适用的对象科学类型 (scitype) 进行可选过滤。有关标签的更多详细信息,供开发人员参考,可以在扩展模板中的规范表中找到。

时间序列#

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

时间序列标注#

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

时间序列分类#

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

时间序列聚类#

一种专注于发现具有相似时间序列的实例组的学习任务。

时间序列分解:#

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

时间序列回归#

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

时间点#

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

工具箱#

相关且可重用的功能集合,实践者可以导入以编写应用程序。工具箱强调代码重用。与框架应用进行比较。

趋势#

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

单变量时间序列#

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

变量#

指的是某些感兴趣的测量值。变量可以是横截面的(例如患者出生地等与时间无关的测量值)或时间序列