所以我把我的语料库转换成了一个不错的word2vec矩阵。该矩阵是负数和正数的浮点矩阵。
我似乎无法得到无限狄利克雷过程来给我任何有凝聚力的答案。
示例输出 [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",我不想提供。
这里可能发生一些隐藏的数字问题。问题在于数据集的高维性。这将导致高斯混合建模中的可能性无限小,从而使模型非常不可能。在某些时候,您似乎得到了一个-inf
值,然后它失败了。
总体而言,聚类似乎严重失败。如果您查看集群大小,您既可以看到数值问题,也可以看到结果已退化。
一个群集的大小为 4480.98985,其他 19 个群集的大小为 1.00053406。这应该加起来是 4480,我猜...但事实并非如此。另外,20 个集群中有 19 个由单个元素组成?因此,您可能也会遇到异常值的问题。
K-means也不会更好。