def _dll(self, x):
alpha = self.get_alpha(x)
result = np.sum(self.vecs[:,np.newaxis,:] * alpha[:,:,np.newaxis]\
* (special.digamma(np.sum(alpha, axis=1))[:,np.newaxis,np.newaxis]\
- special.digamma(np.sum(self.n_m_z+alpha, axis=1))[:,np.newaxis,np.newaxis]\
+ special.digamma(self.n_m_z+alpha)[:,:,np.newaxis]\
- special.digamma(alpha)[:,:,np.newaxis]), axis=0)\
- x / (self.sigma ** 2)
result = -result
return result
评论列表
文章目录