SAX符号序列示例源码提供了基于SAX(简单API for XML)解析技术处理和操作XML文档中符号序列的具体代码案例,适用于开发者学习和参考。
timeseries2symbol.m函数用于将时间序列转换为字符串形式。该功能有两种选择:
1. 将整个时间序列转换成一个字符串。
2. 使用滑动窗口提取子序列并将其转化为字符串。
对于第一种情况,只需输入时间为“N”的长度即可:
例如:我们有一个32长的时间序列,并希望将其转化成8个符号的字符串,且字母大小为3,则可以使用timeseries2symbol(data, 32, 8, 3)。
第二种情况下,将所需的滑动窗口长度作为N输入:
如时间序列长度为32,想要提取16长子序列并转换成8符字符串,字母表大小设为3,则调用timeseries2symbol(data, 16, 8, 3)
函数的参数包括原始数据(data),滑动窗口的长度(N),符号的数量(n)和离散符号的数量(alphabet_size)。输出结果是矩阵形式的symbolic_data(无重复字符串), 和指向第一次出现位置的指针(pointers).
min_dist.m 函数用于计算两个等长字符串之间的最小距离。
输入包括:str1(第一个字符串), str2(第二个字符串), alphabet_size (字母表大小)和压缩比(compression_ratio),输出为dist,即下限距离。
sax_demo代码演示了timeseries2symbol中描述的第一种情况。它提供了一个逐步的SAX (Symbolic Aggregate approXimation) 演示。
使用方式:[str] = sax_demo 或 [str] = sax_demo(data)
mindist_demos展示了min_dist函数如何作为真实欧几里得距离的一个下限估计。
symbolic_visual.m通过视觉比较展示SAX和PAA之间的差异,并说明在相同的,甚至更少的空间内,SAX可以表示数据的更多细节。
输入参数包括data(默认为16个PAA段及4字母大小)等。