gpt4 book ai didi

r - 获取 R 中隐马尔可夫模型 (MHMM) 混合的每个簇内的观测值(包 seqHMM)

转载 作者:行者123 更新时间:2023-12-04 01:59:14 25 4
gpt4 key购买 nike

我正在使用 Mixture of Hidden Markov Model (MHMM)对我的数据进行聚类。为此,我在 R 中使用了包“seqHMM”。我的问题是是否有可能获得每个集群中的实际观察结果。

例如,经过我的分析,我有 3 个聚类,我想在每个聚类中找到确切的观察值,这可能吗?

示例:

首先,我创建了三个具有转移概率初始概率 sc_init1sc_init2sc_init3sc_trans1 的 HMM >、sc_trans2sc_trans3,最后是发射概率 sc_emiss1sc_emiss2sc_emiss3 分别。然后我将它们组合成具有三个集群的 MHMM,如下所示:

mhmm_init <- list(sc_init1, sc_init2, sc_init3)

mhmm_trans <- list(sc_trans1, sc_trans2, sc_trans3)

mhmm_emiss <- list(sc_emiss1,sc_emiss2, sc_emiss3)

mhmm<- build_mhmm(observations=seq, transition_probs=mhmm_trans, emission_probs=mhmm_emission, initial_probs=mhmm_initial, cluster_names = c("Cluster 1", "Cluster 2", "Cluster 3”))

我的数据,seq,是纵向数据。现在模型已构建,我使用 fit_model 函数估计模型参数,如下所示

set.seed(1011) #1011

mhmm_fit <- fit_model(mhmm, local_step = TRUE, threads = 1,
control_em = list(restart = list(times =10)))

mhmm_final <- mhmm_fit$model

通过使用 mhmm_final,我可以获得关于我的三个集群中每一个的一些信息,例如转移概率、初始概率和发射概率。例如,如果我想获得集群 1 的这些估计值,我可以使用以下代码轻松获得它们:

mhmm_final$transition_probs$`Cluster 1`

mhmm_final$emission_probs$`Cluster 1`

mhmm_final$initial_probs$`Cluster 1`

我的问题是如何在每个集群中获得观察结果。有一个可用于观察的代码,如 mhmm_final$observations 但这行代码为我提供了所有三个集群中的所有观察结果。我想在每个集群中找到确切的观察结果,在本例中是集群 1。

假设我有 10 个序列(seq 1、seq 2、seq 3、seq 4、seq 5、seq 6、seq 7、seq 8、seq 9、seq 10),我将它们聚类为三组这种方法。我想知道这些序列中的每一个都属于哪个簇。

最佳答案

您可以从摘要中得到最可能的集群:

summary(mhmm_final)$most_probable_cluster

关于r - 获取 R 中隐马尔可夫模型 (MHMM) 混合的每个簇内的观测值(包 seqHMM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com