我試圖找到一種方法來優化R中隱馬爾可夫模型(HMM)中的狀態數。 R中的HMM上有許多R包但I我無法估計隱藏狀態的最佳數量。 謝謝你的幫助。R優化隱馬爾可夫模型中的狀態數
0
A
回答
2
要調整隱藏狀態的數量,您需要一個可能數量爲隱藏狀態的矢量nhs
和性能指標perf()
(某種可以評估模型效果的錯誤度量)。然後爲每個隱藏狀態數量建立一個模型,並選擇一個給你最佳性能的模型。
這是一個僞代碼的例子,說明如何做到這一點。
nhs <- c(1, 2, 3, 5, 8, 11, 15)
error <- rep(NA, length(nhs))
for(i in 1:length(nhs)){
fit <- train.HMM(data, nhs[i])
error[i] <- perf(fit)
}
nhs[which.min(error)] # Optimal number of hidden states
我想你的情況下的性能測量將是模型在預測新的看不見的例子的結果時有多好。我建議你爲每個隱藏狀態數量做cross validation。一些在這些線路上:
...
for(i in 1:length(nhs)){
pred <- vector("list", k)
for(fold in 1:k){
fit <- train.HMM(data[not.in.fold.k], nhs[i])
pred[[fold]] <- predict(fit, data[in.fold.k])
}
error[i] <- perf(pred)
}
...
我並沒有提供更詳細的代碼的原因是爲了不弄亂的例子(因爲你沒有提供一個可重複的例子,從工作)。
0
通過確定經常狀態的復發分析圖可能是一種信息化的方式來近似確定初始隱藏狀態的數量。
相關問題
- 1. 隱馬爾可夫模型
- 2. 用C++隱馬爾可夫模型
- 3. 隱馬爾可夫模型工具:Jahmm
- 4. R中訓練隱馬爾可夫模型
- 5. 隱藏的馬爾可夫模型包在R
- 6. 在馬爾可夫模型中的狀態之間移動 - 如何判斷R?
- 7. 在馬爾可夫模型中計算n先行狀態
- 8. 馬爾可夫鏈與隱馬爾可夫模型有什麼區別?
- 9. 爲什麼在鮑姆韋爾奇算法中使用隱馬爾可夫模型與馬爾可夫模型
- 10. 馬爾可夫模型與已知的狀態
- 11. 隱馬爾可夫模型每種狀態的多個觀察值
- 12. 隱藏馬爾科夫模型閾值
- 13. 隱藏的馬爾可夫模型在R或python中的實現
- 14. 隱馬爾可夫在PyMC3
- 15. 隱馬爾可夫模型中的計算分佈
- 16. 遊戲中的隱馬爾可夫模型
- 17. Matlab隱馬爾可夫模型數據預測
- 18. 如何適應數據到隱馬爾可夫模型sklearn/hmmlearn
- 19. 隱藏馬爾可夫模型的下一個狀態只取決於前一個狀態?前n個州呢?
- 20. 在.net中隱藏馬爾可夫模型實現?
- 21. 水平馬爾可夫化
- 22. 流利NHibernate:模型馬爾可夫鏈
- 23. 隱馬爾可夫模型的並行前後向算法
- 24. 使用隱馬爾可夫模型的手形分析
- 25. 如何使未來的預測與隱馬爾可夫模型
- 26. 三面骰子的隱馬爾可夫模型
- 27. 時間序列的隱馬爾可夫模型
- 28. 使用隱馬爾可夫模型的手勢識別
- 29. R中的簡單馬爾可夫鏈(可視化)
- 30. 使用隱馬爾可夫模型設計AI mp3播放器
取決於數據集的大小和表現如何,BIC可能是一個合理的(並且在計算上更輕)的替代性能度量... –
非常感謝您的明確答案。 –
非常感謝您提供BIC。這非常有幫助。 –