2014-12-15 2 views
3

그래서 저는 자료를 멋진 word2vec 행렬로 변환했습니다. 이 행렬은 음수가 &이고 양수인 부동 소수점 행렬입니다.DPGMM 모든 값을 단일 클러스터로 클러스터링합니다.

나는 응집력있는 대답을주기 위해 무한한 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.-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 모양, γ- & MU 모든 폭발 결국 시스템이 실제로 정확하지 단지 1 클러스터에 수렴한다. 나는 DPGMM을 위해 알파를 노려 보았지만 실제로는별로 변하지 않았다.

자발적인 클러스터링 시스템을 사용하여 의미에 더 가까운 단어를 자동으로 클러스터링합니다. K-Means는 내가 제공하고 싶지 않은 'K'가 필요합니다.

+1

이 질문은 아직보고있는 사람들을위한 것입니다. 'covariance_type = "diag"를 사용해보십시오. 파이썬이 어떻게 Wishart 분포와 로그 확률을 계산했는지에 문제가 있다고 생각합니다. –

답변

3

여기서 숨겨진 숫자 문제가있을 수 있습니다. 문제는 데이터 집합의 높은 차원입니다. 이것은 가우스 혼합 모델링에서 무한히 작은 가능성을 이끌어 낼 것이며, 모델을 매우 희박하게 만듭니다. 어떤 시점에서 -inf 값을 얻은 다음 실패합니다.

전반적으로 클러스터링은 거의 실패로 보입니다. 클러스터 크기를 살펴보면 수치 문제뿐만 아니라 결과가 퇴화 된 것을 볼 수 있습니다.

한 클러스터의 크기는 4480.98985이고 다른 19 클러스터의 크기는 1.00053406입니다. 이것은 4480까지 추가해야한다고 생각합니다. 그러나 그렇지 않습니다. 또한 20 개 클러스터 중 19 개가 단일 요소로 구성됩니다. 그래서 이상 치를 가진 문제도있을 수 있습니다.

K- 수단은 더 잘 작동하지 않습니다.

+0

통찰력에 감사드립니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있습니까? – bge0

+1

먼저 데이터를 분석하십시오. 분포를 이해하십시오. 데이터가 하나의 큰 얼룩이라면 클러스터링 알고리즘은 의미있는 구조를 발견하지 못합니다. 클러스터링을 시작하기 전에 sh * t를 모든 것으로 시각화하십시오. –

+0

놀랍게도 K-Means는 의미있는 단어 clustering을 제공합니다. 그러나 클러스터 크기 조정은 분명히 수동으로 선택됩니다. – bge0

관련 문제