我正在使用以下loglikelihood公式来比较文档和集群之间的相似性: log p(d | c)= sum(c(w,d)* log p(w | c)); c(w,d)是文档中单词的频率,p(w | c)是单词c生成单词w的可能性。
问题在于,基于这种相似性,文档通常被分配给错误的集群。如果我将文档分配给具有最高日志p(d | c)的集群(因为它通常为负值,我将-log p(d | c)),那么它将是包含来自a的大量单词的集群文档,但群集中这些单词的概率很低。 如果我将文档分配给具有最低日志p(d | c)的集群,那么它将是仅与一个单词中的文档相交的集群。 有人可以解释我如何正确使用对数似然?我尝试在java中实现这个功能。我已经看过谷歌学者,但没有在文本挖掘中找到合适的对数可能性解释。 提前致谢
答案 0 :(得分:1)
您的对数似然公式对于描述具有多项模型的文档是正确的(每个文档中的单词是独立于多项分布生成的)。
要获得最大似然群集分配,您应该采用最大化log p(d | c)的群集分配c。 log p(d | c)应为负数 - 最大值是最接近零的数字。
如果您的集群分配没有意义,很可能是因为多项模型没有很好地描述您的数据。因此,您的问题的答案很可能是您应该选择不同的统计模型或使用不同的聚类方法。