[英]Obtaining the observations within each cluster for Mixture of Hidden Markov Model (MHMM) in R (Package seqHMM)
我正在使用隱馬爾可夫模型(MHMM)混合物對數據進行聚類。 為此,我在R中使用了程序包“ seqHMM ”。我的問題是,是否有可能獲得每個聚類中的實際觀測值。
例如,經過分析,我有3個聚類,我想在每個聚類中找到確切的觀測值,這可能嗎?
例:
首先,我創建了三個HMM,分別具有初始概率sc_init1
, sc_init2
, sc_init3
和sc_trans1
, sc_trans2
, sc_trans3
,最后具有發射概率sc_emiss1
, sc_emiss2
和sc_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.