HMMlearn モジュールを使用して、ガウス混合モデルで HMM を生成しています。
問題は、モデルをデータに適合させる前に、各混合成分の平均、分散、および重みを初期化したいことです。
どうすればこれを行うことができますか?
HHMleanのドキュメントから
各 HMM パラメーターには、その初期化と推定をカスタマイズするために使用できる文字コードがあります。EM アルゴリズムには開始点が必要です。したがって、トレーニングの前に、各パラメーターにランダムな値またはデータから計算された値が割り当てられます。このプロセスにフックして、明示的に開始点を提供することができます。そうするために
- パラメーターの文字コードが init_params から欠落していることを確認してから、
- パラメータを目的の値に設定します。
次に例を示します。
model = hmm.GaussianHMM(n_components=3, n_iter=100, init_params="t")
model.startprob_ = np.array([0.6, 0.3, 0.1])
model.means_ = np.array([[0.0, 0.0], [3.0, -3.0], [5.0, 10.0]])
model.covars_ = np.tile(np.identity(2), (3, 1, 1))
を初期化する別の例GMMHMM
model = hmm.GMMHMM(n_components=3, n_iter=100, init_params="smt")
model.gmms_ = [sklearn.mixture.GMM(),sklearn.mixture.GMM(),sklearn.mixture.GMM()]
init_params
GMM 自体は、その属性を使用して、コンストラクターによって初期化する必要がある属性を文字列で指定することにより、非常によく似た方法で初期化できます。