K- 평균 군집화와 PCA는 매우 다른 목표를 가진 것으로 보이며 첫눈에 관련이없는 것처럼 보입니다. 그러나 Pingcipal Component Analysis를 통한 Ding & He 2004 논문 K- 평균 군집화 에서 설명했듯이 , 이들 사이에는 깊은 연관성이 있습니다.
직감은 PCA가 모든 데이터 벡터를 소수의 고유 벡터의 선형 조합으로 나타내려고 노력 하며 평균 제곱 재구성 오류를 최소화하기 위해 수행한다는 것입니다. 대조적으로, K- 평균은 적은 수의 군집 중심을 통해 모든 데이터 벡터를 나타내려고한다 . 즉, 단일 제외하고 선형 조합 가중치가 모두 0이어야하는 소수의 군집 중심 벡터의 선형 조합으로 나타내려고한다 . 또한 평균 제곱 재구성 오류를 최소화하기 위해 수행됩니다.n 1nn1
따라서 K- 평균은 초 스파 스 PCA로 볼 수 있습니다.
Ding & He 논문은이 연결을보다 정확하게 만듭니다.
불행하게도, Ding & He 논문은 약간의 조잡한 공식을 포함하고 있으며 쉽게 오해 될 수 있습니다. 예를 들어 Ding & He는 K- 평균 군집 솔루션의 군집 중심이 차원 PCA 부분 공간에 있음을 증명 한 것으로 보입니다 .(K−1)
정리 3.3. 군집 중심 부분 공간은 첫 번째
주요 방향 [...]으로 확장됩니다.K−1
의 경우 이 PC1 축에 대한 예측이 반드시 즉 PC2 축 완벽 클러스터를 분리하는 것, 다른 클러스터에 대한 하나 개의 클러스터에 대한 부정과 긍정적는 것을 의미한다.K=2
이것은 실수이거나 어리석은 글입니다. 어쨌든 말 그대로,이 특별한 주장은 거짓입니다.
대한 2D의 장난감 예제를 살펴 보도록하겠습니다 . 공분산 행렬은 같지만 평균이 다른 두 정규 분포에서 일부 표본을 생성했습니다. 그런 다음 K- 평균과 PCA를 모두 실행했습니다. 다음 그림은 위의 데이터의 산점도와 아래의 K- 평균 솔루션에 따라 동일한 데이터의 색을 보여줍니다. 또한 첫 번째 주요 방향을 검은 선으로 표시하고 K- 평균이 검은 십자가를 가진 클래스 중심으로 표시합니다. PC2 축은 검은 색 점선으로 표시됩니다. K- 평균은 전 세계 최적의 수렴을 보장하기 위해 랜덤 시드로 번 반복되었습니다 .100K=2100
클래스 중심이 첫 번째 PC 방향과 거의 비슷 하지만 정확하게 떨어지지 않는다는 것을 분명히 알 수 있습니다. 또한 PC2 축이 서브 플로트 1과 4에서 클러스터를 완벽하게 분리하더라도 서브 플로트 2와 3에서 잘못된쪽에 몇 개의 점이 있습니다.
따라서 K- 평균과 PCA 간의 합의는 상당히 좋지만 정확하지는 않습니다.
딩앤은 무엇을 증명 했는가? 간단히하기 위해 만 고려할 것 입니다. 각 클러스터에 할당 된 포인트 수는 및 이고 총 포인트 수는 입니다. Ding & He 다음에 다음과 같이 클러스터 표시기 벡터 을 정의합니다. 번째 점이 클러스터 1에 속하고 경우 클러스터 2에 속하는 경우) 클러스터 표시기 벡터의 단위 길이는 이고 "중심"입니다. 즉, 요소 합계는 0 입니다.n 1 n 2 n = n 1 + n 2 q ∈ R n q i = √K=2n1n2n=n1+n2 q∈Rn 나는qi=n2/nn1−−−−−−√iqi=−n1/nn2−−−−−−√∥q∥=1∑qi=0
Ding & He는 K- 평균 손실 함수 (K- 평균 알고리즘이 최소화하는 를 , 여기서 는 모든 점 사이의 스칼라 곱 의 그램 행렬입니다 : , 여기서 는 데이터 행렬이고 는 중심 데이터 행렬입니다.∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(참고 : 나는 종이와 약간 다른 표기법과 용어를 사용하고 있지만 더 명확합니다.)
따라서 K- 평균 솔루션 는 최대화하는 중심 단위 벡터 입니다. 첫번째 주요 성분 (제곱의 부 합이 때 정규화) 그람 행렬의 주요한 고유 벡터, 즉, 그것도 중심 단위 벡터 인 것을 표시하기 쉽다 극대화 된 . 유일한 차이점은 는 두 개의 다른 값만 갖도록 제한되는 반면 에는이 제약 조건이 없다는 것입니다.qq⊤Gqpp⊤Gpqp
다시 말해, K- 평균과 PCA 는 동일한 목적 함수를 최대화 하는데 , 유일한 차이점은 K- 평균에는 추가적인 "범주 적"제약이 있다는 것입니다.
K-means (제약 된) 솔루션과 PCA (unontrained) 솔루션은 시뮬레이션에서 위에서 보았 듯이 서로 가깝게 접근 할 것이지만, 그것들이 동일하다고 기 대해서는 안되는 이유가 있습니다. 취하고 모든 부정 요소를 하고 모든 긍정적 요소를 하면 일반적으로 정확하게 제공 하지 않습니다 .p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
Ding & 그는 다음과 같이 정리를하기 때문에 이것을 잘 이해하고있는 것 같습니다.
정리 2.2. 인 평균 군집화 의 경우 군집 표시기 벡터의 연속 솔루션이 [제 1] 주성분입니다K=2
"연속 솔루션"이라는 단어에 유의하십시오. 이 정리를 증명 한 후에 그들은 또한 PCA를 사용하여 K- 평균 반복을 초기화 할 수 있다고 언급하는데 이는 가 가까울 것으로 예상 할 때 완전히 의미 가 있습니다 . 그러나 반복이 동일하지 않기 때문에 반복을 수행해야합니다.qp
그러나 Ding & He는 대한보다 일반적인 치료법을 개발하고 정리 3.3을 공식화합니다.K>2
정리 3.3. 군집 중심 부분 공간은 첫 번째
주요 방향 [...]으로 확장됩니다.K−1
나는 섹션 3의 수학을 거치지 않았지만,이 정리는 실제로 K- 평균의 "연속적 해결"을 의미한다고 믿습니다. 스팬 [...] ".
그러나 Ding & He는이 중요한 자격을 부여하지 않으며, 요약서에
여기서 우리는 주요 구성 요소가 K- 평균 군집화를위한 개별 클러스터 구성원 표시기에 대한 지속적인 솔루션임을 증명합니다. 마찬가지로, 우리는 클러스터 중심에 의해 확장 된 부분 공간이 항 에서 잘린 데이터 공분산 행렬의 스펙트럼 확장에 의해 주어진다는 것을 보여준다 .K−1
첫 번째 문장은 완전히 맞지만 두 번째 문장은 정확하지 않습니다. 이것이 (매우) 조잡한 글인지 또는 실수인지는 분명하지 않습니다. 설명을 요청하는 두 저자 모두에게 정중하게 이메일을 보냈습니다. (2 개월 후 업데이트 : 나는 그 소식을들은 적이 없다.)
Matlab 시뮬레이션 코드
figure('Position', [100 100 1200 600])
n = 50;
Sigma = [2 1.8; 1.8 2];
for i=1:4
means = [0 0; i*2 0];
rng(42)
X = [bsxfun(@plus, means(1,:), randn(n,2) * chol(Sigma)); ...
bsxfun(@plus, means(2,:), randn(n,2) * chol(Sigma))];
X = bsxfun(@minus, X, mean(X));
[U,S,V] = svd(X,0);
[ind, centroids] = kmeans(X,2, 'Replicates', 100);
subplot(2,4,i)
scatter(X(:,1), X(:,2), [], [0 0 0])
subplot(2,4,i+4)
hold on
scatter(X(ind==1,1), X(ind==1,2), [], [1 0 0])
scatter(X(ind==2,1), X(ind==2,2), [], [0 0 1])
plot([-1 1]*10*V(1,1), [-1 1]*10*V(2,1), 'k', 'LineWidth', 2)
plot(centroids(1,1), centroids(1,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(1,1), centroids(1,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot(centroids(2,1), centroids(2,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(2,1), centroids(2,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot([-1 1]*5*V(1,2), [-1 1]*5*V(2,2), 'k--')
end
for i=1:8
subplot(2,4,i)
axis([-8 8 -8 8])
axis square
set(gca,'xtick',[],'ytick',[])
end