DPGMM将所有值聚类为单个群集

时间:2014-12-15 23:10:44

标签: scikit-learn cluster-analysis dirichlet

所以我将我的语料库转换成了一个很好的word2vec矩阵。 该矩阵是具有负和&的浮点矩阵。正数。

我似乎无法获得无限的dirichlet过程给我任何有凝聚力的答案。

示例输出[2个步骤]如下所示:

original word2vec matrix:
[[-0.09597077 -0.1617426  -0.01935256 ...,  0.03843787 -0.11019679
   0.02837373]
 [-0.20119116  0.09759717  0.1382935  ..., -0.08172804 -0.14392921
  -0.08032629]
 [-0.04258473  0.03070175  0.11503845 ..., -0.10350088 -0.18130976
  -0.02993774]
 ..., 
 [-0.08478324 -0.01961064  0.02305113 ..., -0.01231162 -0.10988192
   0.00473828]
 [ 0.13998444  0.05631495  0.00559074 ...,  0.05252389 -0.14202785
  -0.03951728]
 [-0.02888418 -0.0327519  -0.09636743 ...,  0.10880557 -0.08889513
  -0.08584201]]
Running DGPMM for 20 clusters of shape (4480, 100)
Bound after updating        z: -1935576384.727921
Bound after updating    gamma: -1935354454.981427
Bound after updating       mu: -1935354033.389434
Bound after updating  a and b: -inf
Cluster proportions: [  4.48098985e+03   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00]
covariance_type: full
Bound after updating        z: -inf
Bound after updating    gamma: -inf
Bound after updating       mu: -inf
Bound after updating  a and b: -inf
Cluster proportions: [  4.48098985e+03   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00
   1.00053406e+00   1.00053406e+00   1.00053406e+00   1.00053406e+00]

可观察到,它看起来像z,gamma& mu全部爆炸,最终系统收敛到只有1个群集,这个群集并不准确。我曾尝试为DPGMM摆弄alpha,但它并没有真正改变太多。

我要做的是使用自动聚类系统自动聚类更接近意义的单词。 K-Means需要'K',我不想提供。

1 个答案:

答案 0 :(得分:3)

这里可能会发生一些隐藏的数字问题。问题是数据集的高维度。这将导致高斯混合模型的极小可能性,从而使模型非常不可能。在某些时候,您似乎获得-inf值,然后失败。

总的来说,群集似乎严重失败。如果查看簇大小,您既可以看到数值问题,也可以看到结果已退化。

一个群集的大小为4480.98985,其他19个群集的大小为1.00053406。这应该加起来4480,我猜......但它没有。另外,20个集群中有19个由单个元素组成?所以你也可能遇到异常值问题。

K-means也不会更好。