def _calcPredProbVec_Fast(self, SS, x):
p = np.zeros(SS.K)
nu, beta, m, kappa = self.calcPostParams(SS)
kbeta = beta
kbeta *= ((kappa + 1) / kappa)[:, np.newaxis]
base = np.square(x - m)
base /= kbeta
base += 1
# logp : 2D array, size K x D
logp = (-0.5 * (nu + 1))[:, np.newaxis] * np.log(base)
logp += (gammaln(0.5 * (nu + 1)) - gammaln(0.5 * nu))[:, np.newaxis]
logp -= 0.5 * np.log(kbeta)
# p : 1D array, size K
p = np.sum(logp, axis=1)
p -= np.max(p)
np.exp(p, out=p)
return p
评论列表
文章目录