2

私は、HMM の核心を理解していると信じています。HMM を通じて、評価 (放出された seq の確率)、復号化 (最も可能性の高い隠れた seq)、および学習問題 (観測された一連の放出 seq からの遷移と放出確率行列の学習) を解決します。

私の問題は学習の問題に関連しています。私は放出シーケンスを持っていますが、それに関連する機能 (隠れた状態の値を意味しますが、隠れた状態の数は不明です) も各シーケンスに持っています。HMM の学習問題と同様に、隠れシーケンス (サイズと確率行列) を推定します。そのためには、放出シーケンスが必要です (事前にわからない場合は、隠れシーケンスのサイズを最適化できます)。

計算には HMMライブラリを使用しています。もちろん、私が望むオプションはありません。

import numpy as np
import pandas as pd

from hmmlearn import hmm

filenames =  [f for f in os.listdir(dir_path) if '.csv' in f.lower()]
d1 = pd.read_csv(dir_path + filenames[0]).as_matrix() # Shape = [m, 3] => first two column is featute and last is the emission-state 
d2 = pd.read_csv(dir_path + filenames[1]).as_matrix() # Shape = [m, 3]


##
remodel = hmm.GaussianHMM(n_components=4, covariance_type="full", n_iter=100)

remodel.fit(d1[:, 0:2])  # Problem would have been solved if there was supervised option to pass the states as well 

pred_1 = remodel.predict(d1[:, 0:2])
true_1 = d1[:, -1] # Last column is state of the feature in 1, 2 column.

pred_2 = remodel.predict(d2[:, 0:2])
true_2 = d2[:, -1]

HMM で教師あり学習を行う方法はありますか? そうでない場合でも、HMM を使用して問題を解決できますか? 可能であれば、どのように?

4

1 に答える 1