簡體   English   中英

獲取R中的隱馬爾可夫模型(MHMM)混合物在每個群集中的觀測值(包seqHMM)

[英]Obtaining the observations within each cluster for Mixture of Hidden Markov Model (MHMM) in R (Package seqHMM)

我正在使用隱馬爾可夫模型(MHMM)混合物對數據進行聚類。 為此,我在R中使用了程序包“ seqHMM ”。我的問題是,是否有可能獲得每個聚類中的實際觀測值。

例如,經過分析,我有3個聚類,我想在每個聚類中找到確切的觀測值,這可能嗎?

例:

首先,我創建了三個HMM,分別具有初始概率sc_init1sc_init2sc_init3sc_trans1sc_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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM