Prawdą jest, że K-klastrowanie i PCA wydają się mieć bardzo różne cele i na pierwszy rzut oka nie wydają się być powiązane. Jednak, jak wyjaśniono w artykule D- and & 2004 K-oznacza Clustering poprzez Principal Component Analysis , istnieje między nimi głęboki związek.
Intuicja jest taka, że PCA stara się reprezentować wszystkie wektorów danych jako liniowe kombinacje niewielkiej liczby wektorów własnych i robi to, aby zminimalizować średni błąd kwadratowy rekonstrukcji. W przeciwieństwie do tego, K-średnie stara się reprezentować wszystkie n wektorów danych za pomocą niewielkiej liczby centroidów klastrowych, tj. Reprezentować je jako kombinacje liniowe małej liczby wektorów centroidów klastrowych, w których wagi kombinacji liniowej muszą być równe zeru, z wyjątkiem pojedynczego 1 . Odbywa się to również w celu zminimalizowania średniego kwadratu błędu rekonstrukcji.nn1
Tak więc środki K można postrzegać jako super-rzadkie PCA.
Co robi papier Ding & He, aby uczynić to połączenie bardziej precyzyjnym.
(K−1)
K−1
K=2
Jest to albo błąd, albo niechlujne pisanie; w każdym razie, biorąc dosłownie, to konkretne twierdzenie jest fałszywe.
K=2100
Widać wyraźnie, że chociaż centroidy klasowe są dość blisko pierwszego kierunku na PC, nie padają na nie dokładnie. Co więcej, mimo że oś PC2 doskonale oddziela klastry w podplotach 1 i 4, istnieje kilka punktów po niewłaściwej stronie w podplotach 2 i 3.
Tak więc zgodność między K-średnich a PCA jest całkiem dobra, ale nie jest dokładna.
K=2n1n2n=n1+n2 q∈Rnqi=n2/nn1−−−−−−√iqi=−n1/nn2−−−−−−√∥q∥=1∑qi=0
Ding i He pokazują, że funkcja utraty K-średnich (że algorytm K-znaczy minimalizuje) może być w równym stopniu przepisana jako , gdzie jest Macierz Gramów produktów skalarnych między wszystkimi punktami: , gdzie jest macierzą danych i to wyśrodkowana macierz danych.∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(Uwaga: używam notacji i terminologii, która nieco różni się od ich pracy, ale uważam ją za bardziej zrozumiałą).
Zatem rozwiązanie K-średnich jest wektorem jednostek centrowanych maksymalizującym . Łatwo jest wykazać, że pierwszy główny składnik (po znormalizowaniu w celu uzyskania sumy jednostkowej kwadratów) jest wiodącym wektorem własnym macierzy Grama, tj. Jest również centrowanym wektorem jednostek maksymalizującym . Jedyną różnicą jest to, że jest dodatkowo ograniczony do posiadania tylko dwóch różnych wartości, podczas gdy nie ma tego ograniczenia.qq⊤Gqpp⊤Gpqp
Innymi słowy, K-średnie i PCA maksymalizują tę samą funkcję celu , przy czym jedyną różnicą jest to, że K-średnie ma dodatkowe ograniczenie „kategoryczne”.
Jest oczywiste, że w większości przypadków rozwiązania K-średnie (ograniczone) i PCA (nieograniczone) będą dość blisko siebie, jak widzieliśmy powyżej w symulacji, ale nie należy oczekiwać, że będą identyczne. Biorąc i ustawiając wszystkie jego ujemne elementy na równe i wszystkie jego pozytywne elementy na ogół nie dają dokładnie .p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
Wydaje się, że Ding i On dobrze to rozumieją, ponieważ formułują swoje twierdzenie w następujący sposób:
Twierdzenie 2.2. W przypadku K-klastrowania, gdzie , ciągłe rozwiązanie wektora wskaźnika klastrowego jest [pierwszym] głównym składnikiemK=2
Zauważ, że słowa „ciągłe rozwiązanie”. Po udowodnieniu tego twierdzenia dodatkowo komentują, że PCA może być użyte do zainicjowania iteracji K-średnich, co ma sens, biorąc pod uwagę, że oczekujemy, że będzie zbliżone do . Ale nadal trzeba wykonywać iteracje, ponieważ nie są one identyczne.qp
Jednak Ding i He opracowali bardziej ogólne podejście do i ostatecznie sformułowali Twierdzenie 3.3 jakoK>2
Twierdzenie 3.3. Podprzestrzeń środka ciężkości klastra jest rozłożona przez pierwsze
główne kierunki [...].K−1
Nie przeszedłem przez matematykę z Rozdziału 3, ale uważam, że to twierdzenie faktycznie odnosi się również do „ciągłego rozwiązania” K-średnich, tj. Jego stwierdzenie powinno brzmieć „klaster centroid przestrzeni ciągłego rozwiązania K-średnich to rozpiętości [...] ".
Ding i On nie dokonują jednak tej ważnej kwalifikacji, a ponadto piszą w streszczeniu
Udowadniamy tutaj, że głównymi składnikami są ciągłe rozwiązania dyskretnych wskaźników członkostwa w klastrze dla klastrów K. Równolegle pokazujemy, że podprzestrzeń rozciągnięta przez centroidy gromadowe wynika z rozszerzenia widmowego macierzy kowariancji danych obciętej w kategoriach .K−1
Pierwsze zdanie jest całkowicie poprawne, ale drugie nie. Nie jest dla mnie jasne, czy jest to (bardzo) niechlujny tekst, czy prawdziwy błąd. Bardzo uprzejmie wysłałem e-mailem do obu autorów prośbę o wyjaśnienie. (Aktualizacja dwa miesiące później: nigdy nie otrzymałem od nich odpowiedzi).
Kod symulacyjny Matlaba
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