0

我正在使用 pymix 包来解决混合模型。

        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

我可以看到 3 个高斯混合的最终均值和标准差。问题是我想访问这些手段和标准来进行一些计算,但不知道如何做到这一点,m.EM() 从最后一次迭代返回一个后验矩阵和对数似然的元组,但显然不是这些均值和标准差,我这里有什么遗漏吗?提前谢谢你。

4

2 回答 2

1

我对 PyMix 一无所知,但print m调用m.__str__()源代码可供您随时查看每个值的来源。

于 2012-05-28T07:25:03.627 回答
1

我想出了如何通过以下方式提取均值和标准差:

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

我的 x1 抓取 'ProductDist: \n Normal: [mean, stdev]\n' 当你'打印 m' 时打印。x2 将 'mean, stdev' 抓取到一个数组中,最后一行将 mean 和 stdev 的字符串版本映射到浮点数。

于 2014-11-13T00:34:04.133 回答