本文中,我们将首创一个长度为m、维度为d的时间序列表示为一个向量。
在aeon中,我们将一个序列描述为x:(n_channels, n_timepoints). x是一个二维数组,其中n_channels对应的是维度d,或者说是特征数量;n_timepoints对应的是m——观察值(observation)的数量. 注意,如果我们这样定义就意味着我们在每个时间点之间有一个固定的时间跨度(例如一个具有相同频率的时间序列). 当d=1时, x就是单变量的. 当d>1时,就是多变量的.
当我们提到时间序列集的时候, 我们将使用下图的方法来表示:
它在代码中对应的是形状为x:(n_samples, n_channels, n_timepoints)的三维数组. 其中n代表n_sample即组成数据集X的时间序列数量.
例如,我们使用枪点数据集:
from aeon.datasets import load_classificationX_train, y_train = load_classification("GunPoint", split="train")
X_test, y_test = load_classification("GunPoint", split="test")print(f"shape of the array: {X_train.shape}")
print(f"n_samples = {X_train.shape[0]}")
print(f"n_channels = {X_train.shape[1]}")
print(f"n_timepoints = {X_train.shape[2]}")
输出:
shape of the array: (50, 1, 150)
n_samples = 50
n_channels = 1
n_timepoints = 150
在aeon中我们有如下基于时间子(shapelet)的分类器
from aeon.utils.discovery import all_estimatorsall_estimators("classifier", tag_filter={"algorithm_type": "shapelet"})
输出
[('LearningShapeletClassifier',aeon.classification.shapelet_based._ls.LearningShapeletClassifier),('RDSTClassifier', aeon.classification.shapelet_based._rdst.RDSTClassifier),('RSASTClassifier',aeon.classification.shapelet_based._rsast.RSASTClassifier),('SASTClassifier', aeon.classification.shapelet_based._sast.SASTClassifier),('ShapeletTransformClassifier',aeon.classification.shapelet_based._stc.ShapeletTransformClassifier)]
为了简便, 我们在一下定义中只考虑d=1的单变量;我们只考虑等长时间序列.
原文地址. 本人远非专业人士, 读书笔记般的翻译仅供一哂