def _mW(self,K,W0,xd,NK,m0,XDim,beta0,S): Winv = [None for _ in range(K)] for k in range(K): Winv[k] = NK[k]*S[k] + inv0(W0) Q0 = np.reshape(xd[k,:] - m0, (XDim,1)) q = np.dot(Q0,Q0.T) Winv[k] += (beta0*NK[k] / (beta0 + NK[k]) ) * q assert np.shape(q)==(XDim,XDim) W = [] for k in range(K): try: W.append(inv0(Winv[k])) except np.linalg.LinAlgError: #print 'Winv[%i]'%k, Winv[k] raise np.linalg.LinAlgError() return W
def _mW(self, K, W0, xd, NK, m0, XDim, beta0, S): Winv = [None for _ in range(K)] for k in range(K): Winv[k] = NK[k] * S[k] + inv0(W0) Q0 = reshape(xd[k, :] - m0, (XDim, 1)) q = dot(Q0, Q0.T) Winv[k] += (beta0 * NK[k] / (beta0 + NK[k])) * q assert shape(q) == (XDim, XDim) W = [] for k in range(K): try: W.append(inv0(Winv[k])) except linalg.linalg.LinAlgError: #print 'Winv[%i]'%k, Winv[k] raise linalg.linalg.LinAlgError() return W
def expC(self): """calculate expected covariance matrix for each component""" return np.array([inv0(Wk*vk) for (Wk,vk) in zip(self._W,self._vk)])
def expC(self): #calculate expected covariance matrix (for each component) return array([inv0(Wk*vk) for (Wk,vk) in zip(self._W,self._vk)])
def expC(self): #calculate expected covariance matrix (for each component) return array([inv0(Wk * vk) for (Wk, vk) in zip(self._W, self._vk)])