算法-从观测中找到HMM的阶数



我得到了一个数据,该数据由隐藏变量的可变长度的N序列及其相应的观测变量组成(即,我对每个序列都有隐藏变量和观测变量(。

有没有一种方法可以在不进行详尽搜索的情况下找到该数据的"最佳"HMM模型的阶数K?(合理的启发法也是合理的(。

我认为"订单"这个词可能有混淆:一阶HMM是一种HMM,其转移矩阵仅取决于先前的状态。二阶HMM是一种HMM,其转移矩阵仅取决于之前的两个状态,依此类推。随着阶数的增加,理论变得"更厚"(即方程(,并且这种复杂模型的实现很少在主流库中实现。在你最喜欢的浏览器上搜索关键词"二阶HMM",会让你对这些模型有意义的了解。

如果你所说的顺序是指状态的数量,并且假设你使用分配给每个状态的单个分布(即,你不使用分布混合物的HMM(,那么,实际上你需要调整的唯一超参数是状态的数量。

您可以使用诸如贝叶斯信息准则、Akaike信息准则或最小消息长度准则之类的基于模型似然计算的准则来估计最佳状态数。通常,使用这些标准需要训练多个模型,以便能够计算一些有意义的似然结果进行比较。

如果你只想对一个可能不是最优的好的K值有一个模糊的想法,那么k均值聚类与解释的方差百分比相结合就可以了:如果X聚类解释的方差超过了训练集中观察值的90%,那么使用X态HMM是一个好的开始。3个第一标准很有趣,因为它们包括一个惩罚项,该惩罚项与模型的参数数量有关,因此可以防止一些过拟合。

当使用基于混合物的HMM时,也可以应用这些标准,在这种情况下,有更多的超参数需要调整(即,混合物模型的状态数量和组分数量(。

最新更新