0

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]」が表示されます。

これの背後にある考えられる理由と解決策を教えてください。

ありがとう。

4

0 に答える 0