변수를 삭제하지 말고 PCA 사용을 고려하십시오. 이유는 다음과 같습니다.
첫째, Anony-mousse가 지적한 것처럼 k- 평균은 공선 성 / 상관 관계에 의해 크게 영향을받지 않습니다. 그로 인해 정보를 버릴 필요가 없습니다.
둘째, 변수를 잘못된 방식으로 떨어 뜨리면 인위적으로 일부 샘플을 더 가깝게 가져옵니다. 예를 들면 :
Customer CatA CatB CatC
1 1 0 0
2 0 1 0
3 0 0 1
(% 표기법을 제거하고 0과 1 사이의 값을 넣었으며 모두 1로 제한되었습니다.)
자연스러운 3D 공간에서 각 고객 간의 유클리드 거리는(1−0)2+(0−1)2+(0−0)2−−−−−−−−−−−−−−−−−−−−−−−√=2–√
이제 CatC를 삭제한다고 가정하겠습니다.
Customer CatA CatB
1 1 0
2 0 1
3 0 0
이제 고객 1과 2 사이의 거리는 여전히 이지만 고객 1과 3, 2와 3 사이는 . 원시 데이터가 지원하지 않는 방식으로 고객 3을 1 및 2와 유사하게 인위적으로 만들었습니다.2–√(1−0)2+(0−0)2−−−−−−−−−−−−−−−√=1
셋째, 공동성 / 상관은 문제가되지 않습니다. 당신의 차원은입니다. 100 개의 변수는 천만 개의 데이터 포인트가 있어도 k- 평균이 데이터에서 스퓨리어스 패턴을 찾아 그에 적합 할까 걱정합니다. 대신 PCA를 사용하여보다 관리하기 쉬운 차원 (예 : 10 또는 12)으로 압축하십시오 (매우 높거나 낮을 수 있음). 각 구성 요소에 따른 차이를 살펴보고 놀아야합니다. 정확한 숫자를 찾으려면 조금). 이 작업을 수행하면 인위적으로 일부 샘플을 더 가깝게 가져올 수 있지만 데이터의 대부분의 분산을 유지하고 상관 관계를 우선적으로 제거하는 방식으로 수행합니다.
~~~~~
편집하다:
다시 PCA에 대한 의견. 그렇습니다. 절대적으로 병리학이 있습니다. 그러나 시도하기가 매우 쉽고 빠르므로 문제의 차원을 줄이려는 경우 여전히 나에게 나쁜 베팅은 아닙니다.
그럼에도 불구하고, 나는 몇 가지 100 차원 합성 데이터를 k- 평균 알고리즘으로 빠르게 던져서 그들이 무엇을했는지 보려고했습니다. 군집 중심 위치 추정치가 정확하지는 않았지만 군집 구성원 (즉, 두 표본이 동일한 군집에 할당되었는지 여부, OP가 관심있는 것으로 보이는지 여부)이 생각했던 것보다 훨씬 우수했습니다. 그래서 내 직감은 이전에 잘못되었을 수도 있습니다. k- 평균 이주는 원시 데이터에서 잘 작동합니다.