2012-05-28 29 views
0

我使用pymix包來解決混合模型。使用PyMix,將m.em()的最終迭代保存到向量或其他東西

 m = mixture.MixtureModel(3,[0.1,0.8,0.1], [n1,n2,n3]) 

     # Resolver el Mixture model 

     m.EM(data,100,0.1) 

我不能事後做了

 print m 

,我可以看到最後的手段和std的爲3個高斯的混合物。問題是 我想訪問這些手段和標準的一些與他們的計算,但不知道如何做,m.EM()從上一次迭代返回後驗矩陣和對數似然的元組,但顯然不是這些手段和標準偏差,有沒有什麼我在這裏失蹤?先進的謝謝你。

回答

1

我對PyMix一無所知,但print m調用m.__str__(),並且the source code隨時可供您查看每個值的來源。

+0

好吧,我可以做m.componentes [1]例如,這給我正常:[ - 0.55332,1.21267]例如。但是這是一個類的實例,我想使它成爲一個數組或一些東西,所以我可以訪問這些值,每個m.component [i]的形式爲Normali:[meani,stdi]。問候。 – JEquihua

+0

@Jequihua您可以深入瞭解該課程。也許有一個文件化的方法來訪問這些值。如果不是,請轉到源代碼。 –

+0

明白了。謝謝Janne,很酷的名字。 – JEquihua

1

我想出如何提取由平均值和STDEV:

x1 = str(m.components[index]) 
x2 = x1[26:-2].split(",") 
mean, stdev = list(map(float,x2)) 

我X1抓住 'ProductDist:\ n普通:平均值,STDEV] \ n' 它打印,當您 '打印M' 。 x2將'mean,stdev'捕獲到數組中,最後一行將平均值和stdev的字符串版本映射到浮點數。