3 つの観測のシーケンスがあり、そのような観測のシーケンスが 3 つあります。3 つの非表示の状態があります。HMMlearn ライブラリの GaussianHMM を使用しています。
state_machine = GaussianHMM(n_components=3, covariance_type="full", n_iter=1000) state_machine.fit(np.stack(np.split(X, 3), axis=1))
1つの機能について、データは次のとおりです
[ 119.01182027 87.03816453 100.50549142 130.54392216 98.57366214
98.62378821 102.27561523 102.84749098 114.64554409]
以下のように観測を分割しています。私の目的は、次の観測を予測することだからです。そして、観測をそのままにしておくと、'9 X 3'_compute_log_likelihood が生成されます。したがって、次の観測を予測できるように、「3 X 3」の形式が必要です。
np.stack(np.split(X, 3), axis=1)
[[ 119.01182027 130.54392216 102.27561523]
[ 87.03816453 98.57366214 102.84749098]
[ 100.50549142 98.62378821 114.64554409]]
しかし、状態遷移行列を次のように取得しています
[[ 0. 0. 1.]
[ 0. 0. 0.]
[ 0. 1. 0.]]
また、「state_machine.predict(test_r)」については、「ValueError: rows of transmat_ must sum to 1.0 (got [ 1. 0. 1.])」というエラーが発生します。
ただし、他の機能については、以下のデータ
[ 98.37498104 98.45256112 94.2081596 108.67319206 92.9055614
98.27020888 90.16851055 105.08352667 102.24313963]
np.stack(np.split(X, 3), axis=1)
[[ 98.37498104 108.67319206 90.16851055]
[ 98.45256112 92.9055614 105.08352667]
[ 94.2081596 98.27020888 102.24313963]]
状態遷移マトリックスを下回っています。
[[` 5.17868641e-03 2.58836952e-03 9.92232944e-01]
[ 9.95633499e-01 7.42556661e-04 3.62394458e-03]
[ 3.40871039e-01 3.07185528e-03 6.56057106e-01]]
「state_machine.predict(test_r)」の場合、「非表示の状態: [2]」が表示されます。
これの背後にある考えられる理由と解決策を教えてください。
ありがとう。