基于相似性聚类非结构化文本并计算最佳聚类数

时间:2014-08-13 11:58:39

标签: r cluster-analysis probability k-means probability-density

我是一名数据挖掘初学者,我正在尝试首先制定解决我正在解决的群集问题的方法。

假设我们有x个编写器,每个编写器都有一个特定的样式(使用唯一的单词等)。他们每个人都写了很多短文,比方说是ha句。我们从作者那里收集了数百个这样的haikus并尝试从haikus中理解,使用上下文分析,我们首先创作了多少作者(在一场大战之后,我们在某种程度上丢失了有多少作者的记录!)< / p>

假设我为每个haikus创建了一个单词哈希表。然后我可以编写一个距离函数来查看每个向量之间相似单词的重复。这可以让我实现某种k均值聚类功能。

我现在的问题是,概率地测量聚类的数量,即作者的数量,这将给我最佳拟合。

类似的东西:

number of authors | probability
1, 0.05
2, 0.1
3, 0.2
4, 0.4
5, 0.1
6, 0.05
7, 0.03
8, 0.01

这里唯一的限制是当作者(或群集)的数量变为无穷大时,我认为概率的西格玛应该收敛到1。

有没有人对如何实施第二部分有任何想法或建议?

1 个答案:

答案 0 :(得分:1)

让我们使用贝叶斯统计数据制定一种方法。

  1. 在作者数量P(K)上选择先前的K。例如,您可以说K ~ Geometric(p)支持{1, 2, ... },其中E[K] = 1 / p是您在查看任何着作之前所期望的作者数量。

  2. 选择一个似然函数L(D|K),在给定固定数量的作者D的情况下为写作数据K分配可能性。例如,您可能会说L(D|K)是通过期望最大化找到的k分量GMM中的总误差量。要真正彻底,你可以从数据中学习L(D|K):互联网上充满了已知作者的ha句。

  3. 找出最大化后验概率K的{​​{1}}的值 - 您对作者数量的最佳猜测。请注意,由于P(K|D)P(K|D) = P(D|K)P(K)/P(D)是常量,P(D)L(D|K)成正比,因此您有:

    P(D|K)

  4. 关于您的问题,表格中的第一列对应max { P(K|D) | K = 1, 2, ... } = max { L(D|K)P(K) | K = 1, 2, ... },第二列对应标准化K;也就是说,它与P(K|D)成比例。