def loglikelihood(num_points, num_dims, clusters, distances_dict_values_cl):
ll = 0
variance = cluster_variance(num_points, clusters, distances_dict_values_cl) or np.nextafter(0, 1)
# print 'var', variance
for cluster in clusters:
fRn = len(cluster)
t1 = fRn * np.log(fRn)
t2 = fRn * np.log(num_points)
t3 = ((fRn * num_dims) / 2.0) * np.log((2.0 * np.pi) * variance)
t4 = (fRn - 1.0) / 2.0
ll += t1 - t2 - t3 - t4
return ll
评论列表
文章目录