从零开始实施GMM时的奇异矩阵

时间:2019-05-14 00:36:33

标签: python-3.x numpy machine-learning cluster-analysis mixed-models

enter image description here enter image description here

在用于高斯混合模型的EM算法中。我们完成以上步骤。 9.23组成E步骤,而9.24、9.25、9.26组成M步骤。

但是,实施9.25总是会给$ \ Sigma_K $单数。无论我选择的是平均值还是sigma,该算法都会在第一次迭代后创建一个奇数$ \ Sigma $。

我对M步骤的实现:

for k in range(K):
    mu[:,k] = np.sum(X*gamma[:,k][:,None],axis = 0)/N[k]

for k in range(K):
    A = X - mu[:,k]
    SigmaK = A.T@(A *gamma[:,k][:,None])
    SigmaK /=self.N[k]
    sigma[k] = SigmaK  

pi = N*(1/N.sum())

此实现中是否存在某些特别错误的问题,会导致协方差始终是奇异的?

0 个答案:

没有答案
相关问题