Python hmmlearn中的混淆矩陣是怎麼表示的?

時間 2021-06-05 15:45:36

1樓:Aubrey Li

第乙個問題已經回答得比較清楚了,我來回答第二個問題。

首先說明下hmmlearn的狀況,hmmlearn裡面的協方差矩陣的型別只應用於Gaussian和GMM模型,目前0.2.0版本裡面GMM模型的非diag型別還有問題,所以拿Gaussian模型來解釋這四種型別(引用愛丁堡大學課件裡面的三張圖):

spherical- 是指在每個馬爾可夫隱含狀態下,可觀察態向量的所有特性分量使用相同的方差值。

對應協方差矩陣的非對角為0,對角值相等,即球面特性。這是最簡單的高斯分布PDF。

diag- 是指在每個馬爾可夫隱含狀態下,可觀察態向量使用對角協方差矩陣。

對應協方差矩陣非對角為0,對角值不相等。diag是hmmlearn裡面的預設型別。

full- 是指在每個馬爾可夫隱含狀態下,可觀察態向量使用完全協方差矩陣。

對應的協方差矩陣裡面的元素都是不為零。

tied- 是指所有的馬爾可夫隱含狀態使用相同的完全協方差矩陣。

這四種PDF型別裡面,spherical, diag和full代表三種不同的高斯分布概率密度函式,而tied則可以看作是GaussianHMM和GMMHMM的特有實現。其中,full是最強大的,但是需要足夠多的資料來做合理的引數估計;spherical是最簡單的,通常用在資料不足或者硬體平台效能有限的情況之下;而diag則是這兩者乙個折中。在使用的時候,需要根據可觀察態向量不同特性的相關性來選擇合適的型別。

2樓:OrangeMoon

hmmlearn這個庫有三種模型,分別是Gaussian,Multinomial和GMMHMM。這三種模型對應的就是三種emission matrix(即混淆矩陣,也就是隱狀態到觀察態的概率)。Gaussian就是說混淆矩陣是乙個高斯分布,即觀察態是連續的。

Multinomiual就是說混淆矩陣事乙個Multibimiual distribution,即觀察態勢離散的。GMMHMM則是說混淆矩陣是遵循gaussinan mixture 分布,也是連續的。

題主問如何把混淆矩陣輸入到模型裡面。首先你要確定你的混淆矩陣的型別。對於Gaussian型別,就是把你希望的 mean和variance值放到模型裡面。

我就直接把文件裡面的例子搬過來,例子裡是建立了乙個高斯分布的隱馬爾科夫模型。

>>>import

numpy

asnp

>>>from

hmmlearn

import

hmm#乙個隱馬爾科夫模型由(p向量,狀態轉移矩陣,混淆矩陣)來定義。

>>>startprob=np

.array

([0.6

,0.3

,0.1

])# 定義初始狀態的概率

>>>transmat=np

.array

([[0.7

,0.2

,0.1],[

0.3,

0.5,

0.2],

[0.3

,0.3

,0.4

]])#定義轉移矩陣的概率

>>>means=np

.array

([[0.0

,0.0],[

3.0,

-3.0],[

5.0,

10.0

]])#定義混淆矩陣的均值

>>>covars=np

.tile(np

.identity(2

),(3,

1,1))

# 定義混淆矩陣的方差

>>>model

=hmm

.GaussianHMM(3

,"full"

,startprob

,transmat

)# 定義乙個混淆矩陣為高斯分布的隱馬爾科夫模型。 這裡『full』的意思就是說你輸入的方差矩陣每個元素都給出了,不是乙個只是對角線上的元素為0的矩陣

>>>model

.means_

=means

>>>model

.covars_

=covars

#把你希望的均值方差輸入你定義的模型裡面,到此你就把混淆矩陣輸入進模型了

>>>X,

Z=model

.sample

(100

)對於Multinomial 和 GMM,我還沒用,不過Multinomial應該是需要你自己手動輸入隱狀態到觀察態的概率的,而GMM應該是和Gaussian型別類似,只是需要多輸入乙個權重因子。

對於第二個問題,covariance_type意思是你的混淆矩陣的covariance matrix是什麼型別,比如若只是對角線上的元素不為0,則把covariance_type設為『diag』。

中建三局裝飾 中建華鼎裝飾 中建海外裝飾 中建中裝哪個好?

給點進這個答案的提個醒,千萬別去中建裝飾西北公司,人力招聘乙個字都不能信,基本工資2800,所有補貼加完扣完五險一金到手3200,飯都吃不起。一年招聘的不如乙個月辭職的,極度缺人,專案上乙個人當五個人用,重傷不下火線,365天無休毫不誇張。 bmtjht 先拋答案,中建三局裝飾,現在叫中建深圳裝飾,...

中醫中的虛實錯雜中的虛中夾實和實中夾虛的區別是什麼。(請通俗易懂的說明)?

貓眼 虛中夾實和實中夾虛,分別代表的是這個病的本質是什麼。虛中夾實,本質上是虛證,但是很可能同時就夾著食積,痰溼,水飲,瘀血等實證。實中夾虛,本質是實證,比如實熱證,因為傷陰,往往都夾著陰虛的情況。 朵朵今天也要加油 其實我覺得125的教材寫的還挺清楚的 從我粗淺的理解 兩者的關聯是可以相互轉化 兩...

C 中 類的vector容器中如何通過類中的成員來查詢到含這個成員的類?不一定只有乙個類含該元素?

黃亮anthony 題目很模糊,不確認題目的含義是否如此,我還是寫個答案吧,如果題主看到,請修改一下問題。成員找自己的類是指這樣的情況 struct A A some 10 int pa some 2 a A pA A char pa offsetof A,a offsetof的原理大體為這樣 ch...