k- 평균에서 최적의 k가없는 경우가 있습니까?


11

이것은 적어도 몇 시간 동안 내 마음 속에있었습니다. k- 평균 알고리즘 ( 코사인 유사성 메트릭 사용 ) 의 출력에 대한 최적의 k를 찾으려고 노력 했기 때문에 클러스터 수의 함수로 왜곡을 플로팅했습니다. 내 데이터 세트는 600 차원 공간에 800 개의 문서를 모은 것입니다.

내가 이해 한 바에 따르면,이 곡선에서 무릎 점 또는 팔꿈치 점을 찾으면 데이터를 넣는 데 필요한 클러스터의 수를 대략 대략 알려 주어야합니다. 아래 그래프를 넣습니다. 빨간색 세로선이 그려지는 지점은 최대 2 차 미분 테스트를 사용하여 얻었습니다 . 이 모든 작업을 수행 한 후, 나는 훨씬 더 간단한 것을 고집했습니다.이 그래프는 데이터 세트에 대해 무엇을 알려줍니까?

클러스터링 할 가치가없고 문서에 구조가 부족하거나 k를 높게 설정해야한다고 알려줍니까? 한 가지 이상한 점은 k가 낮더라도 비슷한 문서가 함께 클러스터링되는 것을보고 있으므로 왜이 곡선을 얻는 지 잘 모르겠습니다. 이견있는 사람?

여기에 이미지 설명을 입력하십시오


2
내가 솔직히 이해하지 못하는 것은 근접 행렬 입력 (및 코사인 인)으로 k- 평균 군집화를 사용하는 방법입니다. K- 평균 군집화에는 원시 데이터 (개체 X 변수) 입력이 필요하며 내부적으로 유클리드 거리에서 작동합니다.
ttnphns

2
@ttnphns : 나는 당신의 요점을 이해하기를 희망하지만 내 지식을 최대한 활용하기 위해 k-means로 거리 측정법을 사용할 수 있습니까? : R 심지어 라이브러리 사용할 수 있습니다처럼 파이썬하지만 외모에서이 일을하고 cran.r-project.org/web/packages/skmeans/index.html 입력은 근접 행렬 아니었지만, 오히려이 terms x document단일 벡터를 수행 한 후 획득 분해. 내가 틀렸다면 정정 해주세요.
Legend

코사인 측정을 기반으로 한 구형 k- 평균 군집화는 새로운 것입니다. 나는 그것에 대해 언젠가 더 읽을 수 있기를 바랍니다.
ttnphns

@ttnphns : 돌아와 주셔서 감사합니다. 그냥 사과와 오렌지를 함께 사용하지 않도록하고 싶었습니다 :)
Legend

Lp

답변:


12

대부분의 상황에서 필자는 그러한 플롯이 기본적으로 데이터에 클러스터 구조가 없음을 의미한다고 생각했을 것입니다. 그러나 유클리드 거리 측정법의 경우 모든 거리가 측정 기준의 수가 증가함에 따라 동일한 경향이 있기 때문에 이와 같은 매우 높은 차원의 클러스터링은 까다 롭습니다. 참조 이 주제에 대한 몇 가지 서류에 대한 참조를위한 위키 페이지를. 요컨대, 문제가되는 것은 데이터 세트의 높은 차원 일 수 있습니다.

이것은 본질적으로 "차원의 저주" 입니다. Wikipedia 페이지도 참조하십시오 .

관심있는 논문은 Sanguinetti, G., "Clustered datset의 차원 축소", IEEE Patterns on Pattern Analysis and Machine Intelligence, vol. 30 번 3, pp. 535-540, 2008 년 3 월 ( www ). 클러스터 구조를 강조하는 저 차원 공간을 찾는 LDA의 감독되지 않은 버전과 약간 비슷합니다. 아마도 k- 평균을 수행하기 전에이를 특징 추출 방법으로 사용할 수 있습니까?


앗 미안 해요. 나는 코사인 유사성을 사용하고 있다고 언급 했어야했다.
Legend

차원의 저주가 코사인 유사성에도 적용되는 것 같습니다. 기본적으로 차원 수가 증가함에 따라 분포를 정의하기 위해 지수 적으로 더 많은 패턴이 필요하다고 말합니다. 클러스터링에서 효과적으로 수행하는 작업은 하위 모집단을 나타내는 분포를 식별하는 것이므로, 높은 차원의 클러스터링은 본질적으로 까다로울 수 있습니다.
Dikran Marsupial

+1 링크 감사합니다. 나는 그것을 통해 다시 돌아올 것이다. k- 평균을 적용하기 전에 원래 행렬에 SVD를 적용하여 치수 수를 줄였습니다.
Legend

3

코사인 유사성을 정확히 어떻게 사용합니까? 이것이 구형 K- 평균이라고하는 것입니까? 데이터 세트가 매우 작으므로 네트워크로 시각화하려고합니다. 이를 위해 유사성 (실제로 코사인 유사성 또는 피어슨 상관 관계)을 사용하고 컷오프를 적용하고 (특정 유사성 위의 관계 만 고려) 결과를 네트워크로 보는 것이 당연합니다 (예 : Cytoscape 또는 BioLayout) . 이것은 데이터에 대한 느낌을 얻는 데 매우 도움이 될 수 있습니다. 둘째, 데이터 행렬의 특이 값 또는 적절하게 변환되고 정규화 된 행렬 (일부 형식으로 얻은 문서 문서 행렬)의 고유 값을 계산합니다. 군집 구조는 순서대로 고유 값 또는 특이 값의 순서로 점프로 표시되어야합니다.


+1 포인터 감사합니다. 나는 Cytoscape를 몰랐다. 나는 그것을 시도 할 것이다. 그리고 그렇습니다. 코사인 유사성을 가진 k- 평균은 구형 k- 평균이라고합니다. SVD를 적용하고 치수 수를 줄인 후에이 k- 평균을 적용했습니다. 내가 차원 수를 줄인 방법은 분산 규칙을 ​​사용하는 것입니다 (원래 데이터에서 분산의 95 %에 기여하는 특이 값을 선택하십시오).
Legend

마음에 들지 않으면이 작업을 수행하는 방법을 설명하는 자습서를 가리킬 수 있습니까? 매트릭스를 생성 한 후에는 내보내고 Cytoscape로 가져 와서 제안한 것을 수행합니까? 궁금한 점은 Cytoscape에 코사인 유사성을위한 내장 방법이 있는지 또는 일부 데이터 형식을 사전 계산하여 입력으로 제공해야하는지입니다.
Legend

해당 프로그램으로 작업 할 때 모든 쌍 유사점을 외부에서 계산하고 임계 값으로 필터링하며 <label1> <label2> <similarity> 형식의 파일을 생성합니다. 해당 입력을 읽을 수 있어야합니다. BioLayout에는 .txt 접미사가 있어야합니다. CytoScape에서 '테이블에서 가져 오기'를 사용하십시오.
micans

이해했다. 나는 그렇게하고 곧 돌아올 것이다. 다시 한번 감사드립니다.
Legend

바보 같은 질문에 대해 죄송하지만 데이터를 <label1> <label2> <similarity>로 형식화했지만 정확하게 가져 오는 방법을 알 수는 없습니다. File-> Import-> Network from Table을 수행하고 소스 및 대상 열을 선택했습니다. 상호 작용을 기본값으로 두었습니다. 그러나 가장자리와 함께 가장자리 무게를 어떻게 가져 옵니까? 당신은 어떤 제안을 부탁 하시겠습니까?
Legend

2

일반적으로 그렇습니다. k- 평균은 부적합한 것으로 판단 될 수있는 매우 다른 솔루션으로 수렴 될 수 있습니다. 이것은 특히 불규칙한 모양의 클러스터에 발생합니다.

k-means의 경우 그래프 그램을 사용하여 k- 평균으로 여러 실행을 시각화 할 수 있습니다 (WEKA 그래프 그램 패키지-패키지 관리자가 가장 잘 얻거나 여기를 참조하십시오) . 발견 여기에 .


1

그래프를 올바르게 이해하면 클러스터 수, x 축의 K 및 y 축의 클러스터 내 거리의 플롯입니까?

K- 평균 목적 함수는 WCSS를 최소화하는 것이기 때문에이 플롯은 항상 단조 감소해야합니다. 더 많은 군집을 추가하면 군집의 점 사이 거리가 항상 줄어 듭니다. 이것은 모델 선택의 근본적인 문제이므로 좀 더 정교하게 사용해야합니다.

아마도 Gap 통계 (www-stat.stanford.edu/~tibs/ftp/gap.ps) 또는 다른 것들을 사용해보십시오.

또한 K- 평균이 해당 작업에 적합한 도구가 아님을 알 수 있습니다. 몇 개의 클러스터를 찾을 것으로 예상하십니까? 군집화의 차원 축소에 분산 규칙을 ​​사용하는 것은 적절하지 않습니다. 첫 번째 K-1 PC에 투사 할 때 적절한 전처리 방법은이 백서를 참조하십시오. http://people.csail.mit.edu/gjw/papers/jcss.ps

처음 두 주요 구성 요소에 투영을 플롯하여 이것이 올바른 일인지 신속하게 확인할 수 있습니다. 분명한 분리가 있다면 K-mean은 괜찮을 것입니다. 그렇지 않으면 다른 것을 조사해야합니다. K-subspace 또는 다른 subspace 클러스터링 방법 일 것입니다. 이 방법들은 유클리드 거리에 적용됩니다. 이것이 코사인에 대해 어떻게 바뀌는 지 확실하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.