时间序列变换#

The sktime.transformations 模块包含用于数据转换的类。

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

基于标签的完整表格也可以在 Estimator 搜索页面 上找到(在“Estimator 类型”下拉菜单中选择“transformere”)。

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

变换分为以下几类:

类别

解释

示例

组合

管道的构建块,包装器,适配器

Transformer 管道

系列到特征

将系列转换为浮点数/类别向量

长度和平均值

Series-to-series

将单个序列转换为序列

差分,去趋势

系列-面板

将系列转换为面板

Bootstrap, 滑动窗口

面板变换

面板转换为面板,不是按系列

填充至等长

层次结构

非平凡地使用层次结构信息

Reconciliation

组合#

管道构建 - 结构#

TransformerPipeline(steps)

变压器合成器的管道。

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

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

ColumnEnsembleTransformer(transformers[, ...])

按列应用变换器。

FitInTransform(transformer[, ...])

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之后,Transformer将系列分类为ADI-CV2类别。

形状基元、小波和卷积#

ShapeletTransform([min_shapelet_length, ...])

Shapelet 变换。

RandomShapeletTransform([...])

随机形状变换。

ShapeletTransformPyts([n_shapelets, ...])

Shapelet Transform,来自 pyts

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

随机卷积核变换 (ROCKET)。

MiniRocket([num_kernels, ...])

最小随机卷积核变换 (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, ...])

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

基于矩的特征#

SignatureTransformer([augmentation_list, ...])

从签名方法的转换类。

特征集合#

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

TSFreshRelevantFeatureExtractor([...])

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

TSFreshFeatureExtractor([...])

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

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

规范时间序列特征 (Catch22)。

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

标准时间序列特征 (Catch22 和 24),使用 pycatch22 包。

序列到序列的变压器#

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

当应用于面板或层次数据时,各个系列会被转换。

滞后#

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, ...])

用于太阳能数据的晴空变换器。

过滤和去噪#

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

过滤 Series 数据的 Transformer。

BKFilter([low, high, K])

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

CFFilter([low, high, drift])

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

HPFilter([lamb])

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

KalmanFilterTransformerPK(state_dim[, ...])

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

KalmanFilterTransformerFP(state_dim[, ...])

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

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()

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

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

PeakTime feature extraction for use in e.g.

自相关序列#

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])

Augmenter adding Gaussian (i.e.

特征选择#

这些转换器根据 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, ...])

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

Series-to-Panel 转换器#

这些转换器从单一系列创建一个面板。

Bootstrap 转换#

MovingBlockBootstrapTransformer([n_series, ...])

用于合成时间序列生成的移动块自助法。

SplitterBootstrapTransformer([splitter, ...])

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

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

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

面板到序列的转换器#

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

Merger([method, stride])

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

异常检测,变化点检测#

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

使用 HampelFilter 基于滑动窗口检测异常值。

ClaSPTransformer([window_length, ...])

ClaSP (分类评分概况) 转换器。

层次化变压器#

这些转换器专门用于层次数据和面板数据。

转换依赖于指定的层次结构,这种方式并非简单直接。

Aggregator([flatten_single_levels])

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

Reconciler([method])

层次化协调变换器。