kmeans를 실행하기 전에 상관 관계 / 공 선형 변수를 삭제해야합니까?


14

고객의 클러스터를 식별하기 위해 kmeans를 실행하고 있습니다. 클러스터를 식별하는 약 100 개의 변수가 있습니다. 이러한 각 변수는 고객이 카테고리에서 지출 한 비율을 나타냅니다. 따라서 100 개의 카테고리가있는 경우 각 고객에 대해이 변수의 합이 100 %가되도록 100 개의 변수를 갖습니다. 이제이 변수들은 서로 밀접하게 연관되어 있습니다. kmeans를 실행하기 전에 공선 성을 제거하려면이 중 일부를 삭제해야합니까?

샘플 데이터는 다음과 같습니다. 실제로 100 개의 변수와 1 천만 명의 고객이 있습니다.

Customer CatA CatB CatC   
1         10%  70%  20%   
2         15%  60%  25%

1
데이터를 꾸미기 위해 PCA 분석을 시도 했습니까?
Miroslav Sabo 2016 년

2
"Collinear"는 "correleted"와 동일하지 않습니다. 따라서 귀하의 질문은 불분명합니다
ttnphns

답변:


10

변수를 삭제하지 말고 PCA 사용을 고려하십시오. 이유는 다음과 같습니다.

첫째, Anony-mousse가 지적한 것처럼 k- 평균은 공선 성 / 상관 관계에 의해 크게 영향을받지 않습니다. 그로 인해 정보를 버릴 필요가 없습니다.

둘째, 변수를 잘못된 방식으로 떨어 뜨리면 인위적으로 일부 샘플을 더 가깝게 가져옵니다. 예를 들면 :

Customer CatA CatB CatC
1        1    0    0
2        0    1    0
3        0    0    1

(% 표기법을 제거하고 0과 1 사이의 값을 넣었으며 모두 1로 제한되었습니다.)

자연스러운 3D 공간에서 각 고객 간의 유클리드 거리는(10)2+(01)2+(00)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(10)2+(00)2=1

셋째, 공동성 / 상관은 문제가되지 않습니다. 당신의 차원은입니다. 100 개의 변수는 천만 개의 데이터 포인트가 있어도 k- 평균이 데이터에서 스퓨리어스 패턴을 찾아 그에 적합 할까 걱정합니다. 대신 PCA를 사용하여보다 관리하기 쉬운 차원 (예 : 10 또는 12)으로 압축하십시오 (매우 높거나 낮을 수 있음). 각 구성 요소에 따른 차이를 살펴보고 놀아야합니다. 정확한 숫자를 찾으려면 조금). 이 작업을 수행하면 인위적으로 일부 샘플을 더 가깝게 가져올 수 있지만 데이터의 대부분의 분산을 유지하고 상관 관계를 우선적으로 제거하는 방식으로 수행합니다.

~~~~~

편집하다:

다시 PCA에 대한 의견. 그렇습니다. 절대적으로 병리학이 있습니다. 그러나 시도하기가 매우 쉽고 빠르므로 문제의 차원을 줄이려는 경우 여전히 나에게 나쁜 베팅은 아닙니다.

그럼에도 불구하고, 나는 몇 가지 100 차원 합성 데이터를 k- 평균 알고리즘으로 빠르게 던져서 그들이 무엇을했는지 보려고했습니다. 군집 중심 위치 추정치가 정확하지는 않았지만 군집 구성원 (즉, 두 표본이 동일한 군집에 할당되었는지 여부, OP가 관심있는 것으로 보이는지 여부)이 생각했던 것보다 훨씬 우수했습니다. 그래서 내 직감은 이전에 잘못되었을 수도 있습니다. k- 평균 이주는 원시 데이터에서 잘 작동합니다.


1
PCA로 변수를 제거 할 때는 많은주의를 기울여야한다고 생각합니다. 변수가 단위로 인해 척도가 다르기 때문에 변수를 잘못 제거 할 수 있으므로 제거하기 전에 먼저 모든 분산을 정규화해야합니다. 두 번째 이후에는 PCA가 직교하지 않은 방향으로 변동이 있으면 직교 기반으로 가정하기 때문에 k- 평균에 의해 캡처되지만 PCA에 의해 제거되기 때문에 약간의 변동이있는 치수 만 제거합니다.
Cagdas Ozgenc

1
더 근본적인 관심사는 독립 변수에 대한 PCA가 종속 변수에 대한 정보를 전혀 제공하지 않는다는 것입니다. 이 PCA 접근 방식이 중요한 모든 변수를 제거하고 중요하지 않은 변수 만 유지하는 예제를 쉽게 작성할 수 있습니다! 무슨 일이 일어나고 있는지 확인하려면 보자 의 차이와 이변 량 정규 분포가 과의 상관 관계 설정하고 . 데이터에 대한 PCA 는 를 주요 구성 요소로 식별 하고 제거 합니다. 에서 를 회귀시키는 것은 중요하지 않습니다. 1 ρ > 0 Y = X 1 - X 2 ( X 1 , X 2 ) X 1 + X 2 X 1X 2 Y X 1 + X 2(X1,X2)1ρ>0Y=X1X2(X1,X2)X1+X2X1X2YX1+X2
우버

1
감독되지 않은 설정에서는 관련이 없습니다. 감독 설정의 경우 예 PCA는 대상 변수와의 관계에 신경 쓰지 않습니다. 의존의 방향이 낮은 분산의 방향으로 떨어지는 경우.
Cagdas Ozgenc

2

2D 또는 3D의 장난감 예제에서는 큰 차이가 없어야하며 데이터에 약간의 중복성이 추가됩니다. 모든 포인트가 홀수 (d-1) 차원 초평면에 있습니다. 클러스터 수단도 마찬가지입니다. 이 (d-1) 차원 초평면에서의 거리는 같은 거리의 선형 배수이므로 아무 것도 변경하지 않습니다.

예를 들어 를 수행하여 이러한 데이터를 인위적으로 구성 하면 공간 이 왜곡 되고 및 의 영향이 강조 됩니다. 모든 변수에 대해이 작업을 수행하면 문제가되지 않습니다. 이 방법으로 쉽게 무게를 바꿀 수 있습니다. 이것은 정규화 및 가중치 변수가 필수적 이라는 알려진 사실을 강조합니다 . 데이터에 상관 관계가있는 경우 그 어느 때보 다 중요합니다.x y(x,y)(x,y,x+y)xy

가장 간단한 예인 중복 변수를 살펴 보겠습니다.

데이터 세트에서 PCA를 실행하고 변수를 복제하는 경우이 변수에 중복 가중치를 적용하는 것이 효과적입니다. PCA는 모든 방향의 분산이 똑같이 중요하다는 가정을 기반으로합니다. 따라서 PCA를 수행하기 전에 변수를 신중하게 가중치를 지정해야합니다 (상관 관계를 고려하고 필요한 다른 사전 처리도 수행).


1
stats.stackexchange.com/a/50583 에서 분석 한 결과 ,이 추론은 잘못된 것으로 보입니다.
whuber

나는 장난감 예제 데이터를 기반으로 너무 많이 대답했다.
종료-익명-무스

1

상관 관계높은 변수를 제거하는 것이 좋습니다 .

군집 알고리즘 또는 연결 방법에 관계없이 일반적으로 따르는 것은 점 사이의 거리를 찾는 것입니다. 상관 관계가 높은 변수를 유지하는 것이 전부이지만 더 많이 제공하면 두 점 사이의 거리를 계산할 때 가중치가 두 배가됩니다 (모든 변수가 정규화됨에 따라 효과는 일반적으로 두 배가됩니다).

간단히 말해서 클러스터 형성에 영향을 미치는 변수 강도는 다른 변수와 높은 상관 관계가있는 경우 증가합니다.

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