时间序列变换#

sktime.transformations 模块包含数据变换类。

可以使用 sktime.registry.all_estimators 工具列出 sktime 中的所有(简单)变换器,通过设置 estimator_types="transformer"`,可以选择按标签过滤。有效标签可以使用 sktime.registry.all_tags 列出。

估计器搜索页面上也可找到包含基于标签搜索的完整表格(在“估计器类型”下拉菜单中选择“transformer”)。

对于成对变换器(时间序列距离、核函数),请参阅_transformations_pairwise_ref

变换分类如下

类别

解释

示例

组合

用于构建管道、包装器、适配器的构建块

变换器管道

序列到特征

将序列变换为浮点/类别向量

长度和均值

序列到序列

将单个序列变换为序列

差分,去趋势

序列到面板

将一个序列变换为一个面板

自举法,滑动窗口

面板变换

将面板变换为面板,而非按序列变换

填充至等长

分层

非平凡地使用层级信息

协调

组合#

管道构建 - 结构#

TransformerPipeline(steps)

变换器组合器的管道。

FeatureUnion(transformer_list[, n_jobs, ...])

连接多个变换器对象的结果。

ColumnEnsembleTransformer(transformers[, ...])

对变换器进行列向应用。

FitInTransform(transformer[, ...])

在变换阶段延迟拟合的变换器包装器。

InvertTransform(transformer)

反转序列到序列的变换。

YtoX([subset_index])

创建作为内生数据副本的外生特征。

IxToX([coerce_to_type, level, ix_source])

根据时间索引或层级值创建特征。

管道构建 - 广播和应用-映射#

ColumnwiseTransformer(transformer[, columns])

对多元序列按列应用变换器。

TransformByLevel(transformer[, groupby, ...])

按实例或面板进行变换。

FunctionTransformer([func, inverse_func, ...])

从任意可调用对象构建变换器。

管道构建 - AutoML、开关和多路复用#

MultiplexTransformer(transformers[, ...])

促进基于 AutoML 的最佳变换器选择。

OptionalPassthrough(transformer[, passthrough])

包装现有变换器,以调整是否将其包含在管道中。

TransformIf(if_estimator[, param, ...])

根据可拟合对象的条件有条件地执行变换器。

Id()

恒等变换器,在 transform/inverse_transform 中返回未更改的数据。

管道构建 - 日志记录#

Logger([logger, logger_backend, ...])

日志记录变换器,将数据写入日志,否则保持不变。

Sklearn 和 pandas 适配器#

Tabularizer()

将时间序列/面板数据转换为表格数据的变换器。

TimeBinner(idx[, aggfunc])

根据时间间隔将时间序列/面板数据转换为表格数据。

TabularToSeriesAdaptor(transformer[, ...])

将 scikit-learn 变换接口适配到时间序列设置。

PandasTransformAdaptor(method[, kwargs, ...])

将 pandas 变换适配到 sktime 接口。

序列到特征变换器#

序列到特征变换器将单个时间序列变换为原始特征的集合。原始特征通常是浮点向量,但也可以是类别型。

当应用于面板或分层数据时,变换结果是一个表格,其行数与集合中的时间序列数量相同。

汇总#

这些变换器提取简单的汇总特征。

SummaryTransformer([summary_function, ...])

计算时间序列的汇总值。

WindowSummarizer([lag_feature, n_jobs, ...])

用于提取时间序列特征的变换器。

SplitterSummarizer(transformer[, splitter, ...])

创建时间序列分割的汇总值。

DerivativeSlopeTransformer()

导数斜率变换器。

PlateauFinder([value, min_length])

平台查找器变换器。

RandomIntervalFeatureExtractor([...])

随机区间特征提取变换。

FittedParamExtractor(forecaster, param_names)

已拟合参数提取器。

ADICVTransformer([features, adi_threshold, ...])

根据 Syntetos/Boylan 的方法将序列分类为 ADI-CV2 类别的变换器。

Shapelets、小波和卷积#

ShapeletTransform([min_shapelet_length, ...])

Shapelet 变换。

RandomShapeletTransform([...])

随机 Shapelet 变换。

ShapeletTransformPyts([n_shapelets, ...])

Shapelet 变换,来自 pyts

Rocket([num_kernels, normalise, n_jobs, ...])

RandOm Convolutional KErnel Transform (ROCKET)。

MiniRocket([num_kernels, ...])

MINImally RandOm Convolutional KErnel Transform (MiniRocket)。

MiniRocketMultivariate([num_kernels, ...])

MINImally RandOm Convolutional KErnel Transform (MiniRocket) 多元。

MiniRocketMultivariateVariable([...])

MINIROCKET(多元,不等长)。

DWTTransformer([num_levels])

离散小波变换器。

基于距离的特征#

MatrixProfile([m])

返回数据集中每个时间序列的矩阵画像和索引画像。

基于字典的特征#

SFA([word_length, alphabet_size, ...])

符号傅里叶近似 (SFA) 变换器。

基于自相关的特征#

HurstExponentTransformer([lags, method, ...])

用于计算时间序列赫斯特指数的变换器。

基于矩的特征#

SignatureMoments([degree, use_index, ...])

用于多元时间序列的签名矩变换器。

SignatureTransformer([augmentation_list, ...])

签名方法中的变换类。

特征集合#

这些变换器提取更大的特征集合。

TSFreshRelevantFeatureExtractor([...])

通过 tsfresh.extract_features 提取时间序列特征的变换器。

TSFreshFeatureExtractor([...])

通过 tsfresh.extract_features 提取时间序列特征的变换器。

Catch22([features, catch24, outlier_norm, ...])

Canonical Time-series Characteristics (Catch22)。

Catch22Wrapper([features, catch24, ...])

使用 pycatch22 包的 Canonical Time-series Characteristics (Catch22 和 24)。

序列到序列变换器#

序列到序列变换器将单个时间序列变换为另一个时间序列。

当应用于面板或分层数据时,会变换单个序列。

滞后#

Lag([lags, freq, index_out, ...])

滞后变换器。

ReducerTransform([lags, freq, shifted_vars, ...])

用于预测缩减的变换器。

逐元素变换#

这些变换逐元素应用函数。

根据变换器的不同,可以拟合变换参数。

BoxCoxTransformer([bounds, method, sp, ...])

Box-Cox 幂变换。

LogTransformer([offset, scale])

自然对数变换。

ScaledLogitTransformer([lower_bound, ...])

缩放逻辑变换或对数变换。

CosineTransformer()

余弦变换。

ExponentTransformer([power, offset])

对时间序列应用逐元素的幂变换。

SqrtTransformer([offset])

对时间序列应用逐元素的平方根变换。

ScaledAsinhTransformer([...])

双曲正弦变换及其逆变换 [Rf00c2e2051c3-1]

去趋势和分解#

Detrender([forecaster, model])

从序列中移除趋势

Deseasonalizer([sp, model])

从时间序列中移除季节成分。

ConditionalDeseasonalizer([...])

根据季节性测试,有条件地从时间序列中移除季节成分。

STLTransformer([sp, seasonal, trend, ...])

使用 STL 从时间序列中移除季节成分。

MSTL(*[, periods, windows, lmbda, iterate, ...])

使用 LOESS 进行多季节性季-趋势分解。

VmdTransformer([K, kMax, alpha, tau, DC, ...])

变分模态分解变换器。

ClearSky([quantile_prob, bw_diurnal, ...])

用于太阳能数据的 Clear sky 变换器。

滤波和去噪#

Filter(sfreq[, l_freq, h_freq, filter_kwargs])

过滤序列数据的变换器。

BKFilter([low, high, K])

使用 Baxter-King 滤波器过滤时间序列。

CFFilter([low, high, drift])

使用 Christiano Fitzgerald 滤波器过滤时间序列。

HPFilter([lamb])

使用 Hodrick-Prescott 滤波器过滤时间序列。

KalmanFilterTransformerPK(state_dim[, ...])

Kalman 滤波器,来自 pykalman(sktime 原生维护分支)。

KalmanFilterTransformerFP(state_dim[, ...])

Kalman 滤波器用于给定数据的去噪或隐藏状态推断。

KalmanFilterTransformerSIMD(state_dim[, ...])

来自 simdkalman 的矢量化 Kalman 滤波器。

ThetaLinesTransformer([theta])

将原始数据分解为两条或多条 Theta 线。

Bollinger(window[, k, memory])

对时间序列应用布林带。

差分、斜率、运动学#

Differencer([lags, na_handling, memory])

对时间序列应用迭代差分。

SlopeTransformer([num_intervals])

按段斜率变换。

KinematicFeatures([features])

运动学特征变换器 - 速度、加速度、曲率。

分箱、采样和分割#

TimeBinAggregate(bins[, aggfunc, return_index])

对时间序列进行分箱并按箱聚合。

TSInterpolator(length)

时间序列插值器/重采样器。

IntervalSegmenter([intervals])

区间分割变换器。

RandomIntervalSegmenter([n_intervals, ...])

随机区间分割变换器。

DilationMappingTransformer([dilation])

膨胀映射变换器。

PAA([frames, frame_size])

分段聚合近似变换器 (PAA)。

SAX([word_size, alphabet_size, frame_size])

符号聚合近似变换器 (SAX)。

PAAlegacy([num_intervals])

分段聚合近似变换器 (PAA)。

SAXlegacy([word_length, alphabet_size, ...])

符号聚合近似 (SAX) 变换器。

缺失值处理#

Imputer([method, random_state, value, ...])

缺失值插补。

DropNA([axis, how, thresh, remember])

删除缺失值变换。

季节性和日期时间特征#

DateTimeFeatures([ts_freq, feature_scope, ...])

日期时间特征提取,例如用于预测中的外生数据。

HolidayFeatures(calendar[, holiday_windows, ...])

假期特征提取。

CountryHolidaysTransformer(country[, ...])

国家假期变换器。

FinancialHolidaysTransformer(market[, ...])

金融假期变换器。

TimeSince([start, to_numeric, freq, ...])

计算时间索引与参考起始时间之间的逐元素经过时间。

FourierFeatures(sp_list, fourier_terms_list)

时间序列季节性的傅里叶特征。

FourierTransform()

时间序列的简单傅里叶变换。

SeasonalDummiesOneHot([sp, freq, drop])

时间序列季节性的季节性虚拟变量特征。

RBFTransformer([centers, gamma, rbf_type, ...])

一个用于对时间序列数据应用径向基函数 (RBF) 的自定义变换器。

PeakTimeFeature([ts_freq, peak_hour_start, ...])

用于例如基于树模型的 PeakTime 特征提取。

自相关序列#

AutoCorrelationTransformer([adjusted, ...])

自相关变换器。

PartialAutoCorrelationTransformer([n_lags, ...])

偏自相关变换器。

基于窗口的序列变换#

这些变换器基于一系列滑动窗口创建一个序列。

MatrixProfileTransformer([window_length])

计算时间序列的矩阵画像。

HOG1DTransformer([num_intervals, num_bins, ...])

HOG1D 变换。

SubsequenceExtractionTransformer(...[, ...])

根据滚动聚合提取指定长度的连续子序列。

多元到一元#

这些变换器将多元序列转换为一元序列。

ColumnConcatenator()

将多元序列连接成一个长的一元序列。

数据增强#

InvertAugmenter()

通过乘以 -1 来反转时间序列的数据增强器。

RandomSamplesAugmenter([n, ...])

从时间序列中抽取随机样本。

ReverseAugmenter()

反转时间序列的数据增强器。

WhiteNoiseAugmenter([scale, random_state])

向时间序列添加高斯(即白噪声)的数据增强器。

特征选择#

这些变换器根据 y 选择 X 中的特征。

FeatureSelection([method, n_columns, ...])

选择外生特征。

ElbowClassSum([distance])

Elbow Class Sum (ECS) 变换器,用于选择通道/变量的子集。

ElbowClassPairwise()

Elbow Class Pairwise (ECP) 变换器,用于选择通道的子集。

子集化时间点和变量#

这些变换器通过时间点(pandas 索引或索引级别)或变量(pandas 列)对 X 进行子集化。

ColumnSelect([columns, integer_treatment, ...])

列选择变换器。

IndexSubset([index_treatment])

索引子集化变换器。

对其他框架的适配器#

sktime 接口中暴露其他框架的通用框架适配器。

TemporianTransformer(function[, compile])

对输入时间序列应用 Temporian 函数。

面板变换器#

面板变换器将时间序列面板变换为时间序列面板。

面板变换器在整个面板上拟合,而不是按序列拟合。

等长变换#

这些变换确保面板中的所有序列长度相等

PaddingTransformer([pad_length, fill_value])

将不等长的时间序列面板填充到相等的固定长度。

TruncationTransformer([lower, upper])

在长度范围的下限/上限之间截断不等长面板。

降维#

PCATransformer([n_components, copy, whiten, ...])

应用于时间序列面板的主成分分析。

序列到面板变换器#

这些变换器从单个序列创建一个面板。

自举变换#

MovingBlockBootstrapTransformer([n_series, ...])

移动块自举法,用于合成时间序列生成。

SplitterBootstrapTransformer([splitter, ...])

基于分割器的自举法,用于合成时间序列生成。

STLBootstrapTransformer([n_series, sp, ...])

创建一组相似的时间序列。

RepeatBootstrapTransformer([n_series])

重复自举法,完全重复给定的时间序列 n_series 次。

面板到序列变换器#

这些变换器从面板创建一个单个序列。

Merger([method, stride])

聚合包含一个时间序列重叠窗口的面板数据。

离群点检测、变点检测#

HampelFilter([window_length, n_sigma, k, ...])

使用 HampelFilter 基于滑动窗口检测离群点。

ClaSPTransformer([window_length, ...])

ClaSP (Classification Score Profile) 变换器。

分层变换器#

这些变换器专门用于分层数据和面板数据。

变换以非平凡的方式依赖于指定的层级结构。

Aggregator([flatten_single_levels])

从底层准备分层数据,包括聚合级别。

Reconciler([method])

分层协调变换器。