GMMHMMのgmms_属性で使用するいくつかのGMMを初期化しようとしています。各GMMインスタンスは、異なる平均、重みおよび共分散を有し、GMMHMMの5成分混合物の成分として役立つ。平均、重みおよび共分散は、適合させたいデータセットの(5クラスタ)k平均アルゴリズムから求められ、平均は各クラスタの中心であり、重みは各クラスタの重みであり、共分散は - あなたが推測する - 各クラスタの共分散です。ここでHMMlearn GMMHMMエラー
は、コードスニペットです:
X_clusters = cls.KMeans(n_clusters=5)
fitted_X = X_clusters.fit(X)
means = fitted_X.cluster_centers_
cluster_arrays = extract_feat(X, fitted_X.labels_)
print ('Means: {0}'.format(means))
total_cluster = float(len(X))
all_GMM_params = []
for cluster in cluster_arrays:
GMM_params = []
weight = float(len(cluster))/total_cluster
covar = np.cov(cluster)
GMM_params.append(weight)
GMM_params.append(covar)
all_GMM_params.append(GMM_params)
for i in range(len(means)):
all_GMM_params[i].append(means[i])
model = GMMHMM(n_components=4, covariance_type="diag", n_iter=1000,
n_mix = 5, algorithm='map')
for i in range(len(all_GMM_params)):
GMM_n = mix.GMM(init_params = '')
GMM_n.weights_ = np.array(all_GMM_params[i][0])
GMM_n.covars_ = np.array(all_GMM_params[i][1])
GMM_n.means_ = np.array(all_GMM_params[i][2])
model.gmms_.append(GMM_n)
model.fit(X)
私がモデルに合うようにしようとすると、しかし、私は次のエラーを取得する:
fitting to HMM and decoding ...Traceback (most recent call last):
File "HMM_stock_sim.py", line 156, in <module>
model.fit(X)
File "C:\Python27\lib\site-packages\hmmlearn\base.py", line 436, in fit
bwdlattice)
File "C:\Python27\lib\site-packages\hmmlearn\hmm.py", line 590, in _accumulate
_sufficient_statistics
stats, X, framelogprob, posteriors, fwdlattice, bwdlattice)
File "C:\Python27\lib\site-packages\hmmlearn\base.py", line 614, in _accumulat
e_sufficient_statistics
stats['start'] += posteriors[0]
ValueError: operands could not be broadcast together with shapes (4,) (9,) (4,)
私は前に、このようなエラーを見たことがない、そのSklearnとHMMlearnと一緒に仕事をしています。このエラーを修正するにはどうすればよいですか?
残念ながらも、クラスター配列を転置して、コバールを取得した後、私はまだ上記と同じエラーを取得します。 – Dider
'X 'の形は何ですか?使用した合成データセットが使用しているものと一致しない可能性があります。 –
Xの形:(268,3)すなわち(N、3) – Dider