R の隠れマルコフ モデル (HMM) の状態数を最適化する方法を見つけようとしています。R の HMM には多くの R パッケージがありますが、最適な隠れ状態数を見積もることができません。ご協力ありがとうございました。
2 に答える
2
隠れ状態の数を調整するには、考えられる隠れ状態の数のベクトルとnhs
パフォーマンスの尺度perf()
(モデルの良さを評価できるある種の誤差尺度) が必要です。次に、隠れ状態の数ごとに 1 つのモデルを構築し、最高のパフォーマンスを発揮するモデルを選択します。
これを行う方法の疑似コード例を次に示します。
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
あなたの場合のパフォーマンスの尺度は、モデルが新しい目に見えない例の結果を予測するのにどれだけ優れているかということになると思います. 隠れた状態の数ごとに相互検証を行うことをお勧めします。これらの行の何か:
...
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)
}
...
より詳細なコードを提供しなかった理由は、例を乱雑にしないためです (また、再現可能な例を提供しなかったため)。
于 2012-09-20T13:44:19.123 に答える
0
再発状態を決定することによる再発分析プロットは、初期の隠れ状態のおおよその数を決定するための情報に基づいた方法である可能性があります。
于 2015-04-25T11:29:16.620 に答える