【问题标题】:DPGMM Clustering All Values into Single ClusterDPGMM 将所有值聚类到单个聚类中
【发布时间】:2015-02-14 04:27:51
【问题描述】:

所以我已经将我的语料库转换成一个不错的 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”。

【问题讨论】:

  • 这是为仍在研究这个问题的人准备的。尝试使用`covariance_type="diag"'。我怀疑问题在于 python 如何计算 Wishart 分布以及与之相关的日志概率。

标签: scikit-learn cluster-analysis dirichlet


【解决方案1】:

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

总体而言,集群似乎严重失败。如果您查看集群大小,您既可以看到数值问题,也可以看到结果已经退化。

一个簇的大小为 4480.98985,其他 19 个簇的大小为 1.00053406。这应该加起来 4480,我猜……但事实并非如此。另外,20 个簇中有 19 个由单个元素组成?所以你也可能有异常值的问题。

K-means 也不会更好。

【讨论】:

  • 感谢您的洞察力。您对我如何解决这个问题有什么建议吗?
  • 先分析数据。了解分布。如果数据只是一个大块,任何聚类算法也不会发现有意义的结构。在开始聚类之前可视化所有内容。
  • 令人惊讶的是,K-Means 确实提供了有意义的词聚类。然而,集群大小显然是手动选择的。
  • K-means 结果通常看起来比实际要好得多。如果你有一个有效的相似性度量,你不会通过重复随机选择一个单词来做错,它是 n 个最近邻。这是一个非常简单的过程,但如果您的特征不是随机的,它的评估结果可能与 k-means “集群”一样好。
猜你喜欢
  • 2014-08-27
  • 2019-01-20
  • 1970-01-01
  • 2018-09-05
  • 2019-09-26
  • 1970-01-01
  • 2018-11-11
  • 2018-01-18
  • 1970-01-01
相关资源
最近更新 更多