python矩陣的表示
Ⅰ python hmmlearn中的混淆矩陣是怎麼表示的
hmmlearn這個庫有三種模型,分別是Gaussian,Multinomial和GMMHMM。這三種模型對應的就是三種emission
matrix(即混淆矩陣,也就是隱狀態到觀察態的概率)。Gaussian就是說混淆矩陣是一個高斯分布,即觀察態是連續的。Multinomiual就是說混淆矩陣事一個Multibimiual
distribution,即觀察態勢離散的。GMMHMM則是說混淆矩陣是遵循gaussinan
mixture
分布,也是連續的。
題主問如何把混淆矩陣輸入到模型裡面。首先你要確定你的混淆矩陣的類型。對於Gaussian類型,就是把你希望的
mean和variance值放到模型裡面。我就直接把文檔裡面的例子搬過來,例子里是建立了一個高斯分布的隱馬爾科夫模型。
>>>
import
numpy
as
np
>>>
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』。
Ⅱ python 怎麼表示一個31*9*9的矩陣
: 矩陣就是一個元素是列表的列表。按照求數據中的最孝最大、平均值,只要連接每個子列表,組成一個單列表就可以做到。
Ⅲ 用python的numpy創建一個矩陣
使用numpy創建矩陣有2種方法,一種是使用numpy庫的matrix直接創建,另一種則是使用array來創建。首先載入numpy庫,然後分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖
[1]在高等數學或者線性代數等已經學過了當後面的矩陣的行數等於前面矩陣的列數時,2個矩陣才可以相乘
[2]Hadamard指的是2個m×n的矩陣相乘,結果仍然是m×n的矩陣,結果為對應元素的乘積
[3]單位矩陣是特殊的對角矩陣,零(1)矩陣是指元素全部是0(1)的矩陣
[4]矩陣的第一行是從0開始編號的,python中的各種編號基本上都是從0開始的
注意事項
Ⅳ python怎麼表示矩陣
矩陣就是一個元素是列表的列表。按照求數據中的最孝最大、平均值,只要連接每個子列表,組成一個單列表就可以做到。
Ⅳ 如何使用python表示矩陣
使用python表示矩陣的方法:
使用「import numpy」語句導入numpy包。用numpy包的array函數創建一個二維數組,這個二維數組就表示矩陣
示例代碼如下:
執行結果如下:
Ⅵ python 怎麼實現矩陣運算
1.numpy的導入和使用
data1=mat(zeros((
)))
#創建一個3*3的零矩陣,矩陣這里zeros函數的參數是一個tuple類型(3,3)
data2=mat(ones((
)))
#創建一個2*4的1矩陣,默認是浮點型的數據,如果需要時int類型,可以使用dtype=int
data3=mat(random.rand(
))
#這里的random模塊使用的是numpy中的random模塊,random.rand(2,2)創建的是一個二維數組,需要將其轉換成#matrix
data4=mat(random.randint(
10
,size=(
)))
#生成一個3*3的0-10之間的隨機整數矩陣,如果需要指定下界則可以多加一個參數
data5=mat(random.randint(
,size=(
))
#產生一個2-8之間的隨機整數矩陣
data6=mat(eye(
,dtype=
int
))
#產生一個2*2的對角矩陣
a1=[
]; a2=mat(diag(a1))
#生成一個對角線為1、2、3的對角矩陣
Ⅶ Python 怎樣出矩陣啊,就單位陣
例如:三階的單位陣:
unit1=[[1,0,0],[0,1,0],[0,0,1]]
print(unit1)
foriinrange(0,3):
forjinrange(0,3):
print(unit1[i][j],end='')
print()
foriinrange(0,3):
print(unit1[i])
Ⅷ python中如何表示矩陣和向量
在排單中夏表示矩陣和向量,那麼就應該去看一下她的美的功能輸入,然後就能夠進行設置了。