基于动态的贝叶斯序列学习:机器人传感器输入聚类与分析
1. BCD算法基础
BCD(Bayesian Clustering by Dynamics)算法是一种用于时间序列聚类的方法。它的核心在于通过计算转移概率表之间的相似度,将相似的时间序列合并到同一聚类中。
- 相似度度量 :BCD使用Kulback - Liebler距离的平均值来衡量转移概率表之间的相似度。设$p_{1ij}$和$p_{2ij}$分别是$P_1$和$P_2$中$X_t = j|X_{t - 1} = i$的转移概率。第$i$行两个概率分布的Kulback - Liebler距离为$D(p_{1i}, p_{2i})=\sum_{j = 1}^{s}p_{1ij}\log(p_{1ij}/p_{2ij})$,$P_1$和$P_2$之间的平均距离为$D(P_1, P_2)=\sum_{i}D(p_{1i}, p_{2i})/s$。
- 迭代合并过程 :
- 计算转移概率表之间的两两距离。
- 对生成的距离进行排序。
- 合并转移概率表最接近的两个时间序列,并评估结果。评估时,比较两个时间序列分配到同一聚类的模型$M_c$和它们由不同马尔可夫链(MC)生成的模型$M_s$的概率。如果$p(M_c|S)>p(M_s|S)$,则更新转移概率表集合,并更新有序距离集合;否则,尝试合并第二接近、第三接近的,直到所有对都尝试完,返回目前最可能的分区。