hmmlearn 的两个模型的处理分别为
model1 = hmm.MultinomialHMM(n_components=n_states, n_iter=100, tol=0.01)#隐藏层个数,最大迭代次数,收敛阈值
model2 = hmm.GaussianHMM(n_components=5, covariance_type="full", n_iter=100)
其中他们各自出的序列是不同的,而且高斯的处理为连续,所以当我们要处理离散的数据需要使用.MultinomialHMM但是会提示错误
目前的解决办法只有使用
from sklearn.preprocessing import LabelEncoder
LabelEncoder().fit_transform([0, 1, 5, 10])
array([0, 1, 2, 3])
使用 labelencoder转换我们的数据列如
X1=[3,5,6,7,3,9,23,12]
#X2=[3,3,3,1,4,6]
X2=[3,3,3,2,4,6,9,23]
X1 = LabelEncoder().fit_transform(X1)
print(X1)
X2 = LabelEncoder().fit_transform(X2)
print(X2)
按照原来的输入提示要多项式分布每个数字都需要出现一次,所以跳跃的数字都是不符合要求的,通过转换我们的数据都会连续.