
SAX符号化序列的示例源码。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
SAX符号化序列范例源码--------------------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是可用的离散符号数量。 2 <= alphabet_size <= 10,尽管 alphabet_size = 2 是一个“无用”的特殊情况。 输出:symbolic_data:符号化数据矩阵(无重复)。 如果连续的子序列具有相同的字符串,则仅记录第一个出现的实例,并将其位置存储在“pointers”中。 pointers:存储字符串的第一个出现的位点。 N/n必须是一个整数,否则程序将发出警告并中止。变量“win_size”被赋值为N/n,这表示将原始时间序列上的数据点映射到单个符号所需的数量,“压缩率”。符号化数据将以“symbolic_data”返回,其中包含子序列的指针 ----------min_dist.m---------- 此函数计算两个字符串之间的最小(下限)距离。这两个字符串的长度应相等。 输入:str1:第一个字符串 str2:第二个字符串 alphabet_size:用于构建字符串的字母表大小 compression_ratio: 原数据长度 / 有效数据长度 输出:dist: 下限距离的使用方法: dist = min_dist(str1, str2, alphabet_size, compression_ratio) 此距离度量不是用于比较字符串的最佳度量方法,如果您不打算随后访问原始数据。 因为它无法区分仅在第i个位置不同于两个字符串的字符串(通过连续字符)。 例如 min_dist between abba and abbb is zero. 然而在实践中 min_dist 函数对于分类和聚类非常有效 ,即使您不打算随后访问原始数据。 请参阅 [1]。---------sax_demo:--------- 此代码演示了 timeseries2symbol.m 中描述的第一种情况(对于第二种情况,请参见下面的示例)。 它提供了一个 SAX(符号聚合近似)逐步演示。 按下 Enter 键进行下一步操作。 使用方法:[str] = sax_demo [str] = sax_demo(data)--------------mindist_demo.m-------------- 此函数演示了 min\_dist 下限了真实的欧几里得距离。假设有两个时间系列 A 和 B 。 该演示显示了欧几里得距离和 mindist 。>> mindist\_demosax\_version\_of\_A = 3 4 2 1 1 3 4 2sax\_version\_of\_B = 1 1 3 4 3 1 1 4euclidean\_distance\_A\_and\_B = 10.9094ans = 5.3600 ---> This is the mindist 这是一种衡量标准。
全部评论 (0)


