tslearn.piecewise.OneD_SymbolicAggregateApproximation

class tslearn.piecewise.OneD_SymbolicAggregateApproximation(n_segments=1, alphabet_size_avg=5, alphabet_size_slope=5, sigma_l=None, scale=False)[source]

一维符号聚合近似(1d-SAX)变换。

1d-SAX最初在[1]中提出。

Parameters:
n_segmentsint (default: 1)

要计算的PAA段数。

alphabet_size_avgint (default: 5)

用于描述平均值的SAX符号数量。

alphabet_size_slopeint (default: 5)

用于描述斜率的SAX符号数量。

sigma_lfloat or None (default: None)

用于量化斜率的高斯分布的尺度参数。 如果为None,则使用[1]中给出的公式: \(\sigma_L = \sqrt{0.03 / L}\),其中\(L\)是每个线段的长度。

scale: bool (default: False)

是否应该对每个时间序列的每个特征进行数据缩放,使其具有零均值和单位方差。 在版本0.4中,此参数的默认值设置为False以确保向后兼容性,但在未来版本中可能会更改。

Attributes:
breakpoints_avg_numpy.ndarray of shape (alphabet_size_avg - 1, )

用于生成平均值SAX符号的断点列表。

breakpoints_slope_numpy.ndarray of shape (alphabet_size_slope - 1, )

用于生成斜率SAX符号的断点列表。

注释

此方法需要一个等长时间序列的数据集。

参考文献

[1] (1,2)

S. Malinowski, T. Guyet, R. Quiniou, R. Tavenard. 1d-SAX: 一种新颖的时间序列符号表示方法。IDA 2013.

示例

>>> one_d_sax = OneD_SymbolicAggregateApproximation(n_segments=3,
...         alphabet_size_avg=2, alphabet_size_slope=2, sigma_l=1.)
>>> data = [[-1., 2., 0.1, -1., 1., -1.], [1., 3.2, -1., -3., 1., -1.]]
>>> one_d_sax_data = one_d_sax.fit_transform(data)
>>> one_d_sax_data.shape
(2, 3, 2)
>>> one_d_sax_data
array([[[1, 1],
        [0, 0],
        [1, 0]],

       [[1, 1],
        [0, 0],
        [1, 0]]])
>>> one_d_sax.distance_sax(one_d_sax_data[0], one_d_sax_data[1])
0.0
>>> one_d_sax.distance(data[0], data[1])
0.0
>>> one_d_sax.inverse_transform(one_d_sax_data)
array([[[ 0.33724488],
        [ 1.01173463],
        [-0.33724488],
        [-1.01173463],
        [ 1.01173463],
        [ 0.33724488]],

       [[ 0.33724488],
        [ 1.01173463],
        [-0.33724488],
        [-1.01173463],
        [ 1.01173463],
        [ 0.33724488]]])
>>> one_d_sax.fit(data).sigma_l
1.0

方法

distance(ts1, ts2)

计算1d-SAX表示之间的距离,定义见[1]

distance_1d_sax(sax1, sax2)

计算1d-SAX表示之间的距离,定义见[1]

distance_paa(paa1, paa2)

计算PAA表示之间的距离,定义见[1]

distance_sax(sax1, sax2)

计算SAX表示之间的距离,定义见[1]

fit(X[, y])

拟合一个1d-SAX表示。

fit_transform(X[, y])

拟合1d-SAX表示并相应地转换数据。

from_hdf5(path)

从HDF5文件加载模型。

from_json(path)

从JSON文件加载模型。

from_pickle(path)

从pickle文件加载模型。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

inverse_transform(X)

计算与给定1d-SAX表示相对应的时间序列。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

to_hdf5(path)

将模型保存到HDF5文件。

to_json(path)

将模型保存为JSON文件。

to_pickle(path)

将模型保存到pickle文件中。

transform(X[, y])

将时间序列数据集转换为其1d-SAX表示。

distance(ts1, ts2)[source]

计算在[1]中定义的1d-SAX表示之间的距离。

Parameters:
ts1array-like

时间序列

ts2array-like

另一个时间序列

Returns:
float

1d-SAX 距离

参考文献

[1] (1,2)

S. Malinowski, T. Guyet, R. Quiniou, R. Tavenard. 1d-SAX: 一种新颖的时间序列符号表示方法。IDA 2013.

distance_1d_sax(sax1, sax2)[source]

计算在[1]中定义的1d-SAX表示之间的距离。

Parameters:
sax1array-like

时间序列的1d-SAX表示

sax2array-like

另一个时间序列的1d-SAX表示

Returns:
float

1d-SAX 距离

注释

与SAX距离不同,1d-SAX距离不会下界原始时间序列之间的欧几里得距离。

参考文献

[1] (1,2)

S. Malinowski, T. Guyet, R. Quiniou, R. Tavenard. 1d-SAX: 一种新颖的时间序列符号表示方法。IDA 2013.

distance_paa(paa1, paa2)[source]

计算PAA表示之间的距离,如[1]中所定义。

Parameters:
paa1array-like

时间序列的PAA表示

paa2array-like

另一个时间序列的PAA表示

Returns:
float

PAA距离

参考文献

[1] (1,2)

E. Keogh & M. Pazzani. 扩展动态时间规整以用于数据挖掘应用。SIGKDD 2000, 第285–289页。

distance_sax(sax1, sax2)[source]

计算在[1]中定义的SAX表示之间的距离。

Parameters:
sax1array-like

时间序列的SAX表示

sax2array-like

另一个时间序列的SAX表示

Returns:
float

SAX距离

参考文献

[1] (1,2)

J. Lin, E. Keogh, L. Wei, 等. 体验SAX:一种新颖的时间序列符号表示法. 数据挖掘与知识发现, 2007. 卷15(107)

fit(X, y=None)[source]

拟合一个1d-SAX表示。

Parameters:
Xarray-like of shape (n_ts, sz, d)

时间序列数据集

Returns:
OneD_SymbolicAggregateApproximation

自身

fit_transform(X, y=None, **fit_params)[source]

拟合一个1d-SAX表示并相应地转换数据。

Parameters:
Xarray-like of shape (n_ts, sz, d)

时间序列数据集

Returns:
numpy.ndarray of integers with shape (n_ts, n_segments, 2 * d)

1d-SAX转换后的数据集。最后一个维度的顺序是: 前d个元素代表平均值 (标准SAX符号),最后d个元素代表斜率

classmethod from_hdf5(path)[source]

从HDF5文件加载模型。 需要 h5py http://docs.h5py.org/

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
classmethod from_json(path)[source]

从JSON文件加载模型。

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
classmethod from_pickle(path)[source]

从pickle文件加载模型。

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
get_metadata_routing()[source]

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个封装了路由信息的MetadataRequest

get_params(deep=True)[source]

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

inverse_transform(X)[source]

计算与给定1d-SAX表示相对应的时间序列。

Parameters:
Xarray-like of shape (n_ts, sz_sax, 2 * d)

SAX系列的数据集。

Returns:
numpy.ndarray of shape (n_ts, sz_original_ts, d)

与提供的表示相对应的时间序列数据集。

set_output(*, transform=None)[source]

设置输出容器。

请参阅Introducing the set_output API 以了解如何使用API的示例。

Parameters:
transform{“default”, “pandas”}, default=None

配置transformfit_transform的输出。

  • “default”: 转换器的默认输出格式

  • “pandas”: DataFrame 输出

  • None: 转换配置未更改

Returns:
selfestimator instance

估计器实例。

set_params(**params)[source]

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

to_hdf5(path)[source]

将模型保存到HDF5文件。 需要 h5py http://docs.h5py.org/

Parameters:
pathstr

完整文件路径。文件必须不存在。

Raises:
FileExistsError

如果已经存在具有相同路径的文件。

to_json(path)[source]

将模型保存到JSON文件。

Parameters:
pathstr

完整文件路径。

to_pickle(path)[source]

将模型保存到pickle文件中。

Parameters:
pathstr

完整文件路径。

transform(X, y=None)[source]

将时间序列数据集转换为其1d-SAX表示。

Parameters:
Xarray-like of shape (n_ts, sz, d)

时间序列数据集

Returns:
numpy.ndarray of integers with shape (n_ts, n_segments, 2 * d)

1d-SAX转换后的数据集

使用 tslearn.piecewise.OneD_SymbolicAggregateApproximation 的示例

PAA和SAX特征

PAA and SAX features