Це правда, що кластеризація K-засобів та PCA, як видається, мають дуже різні цілі, і на перший погляд, схоже, не пов'язані. Однак, як пояснено у статті Ding & He 2004 K-означає Кластеризація за допомогою аналізу основних компонентів , між ними існує глибокий зв’язок.
Інтуїція полягає в тому, що PCA прагне представити всі векторів даних як лінійні комбінації невеликої кількості власних векторів, і робить це для мінімізації середньоквадратичної помилки відновлення. Навпаки, K-засоби прагнуть представити всі n векторів даних через невелику кількість центроїдів кластера, тобто представити їх у вигляді лінійних комбінацій невеликої кількості центроїдних векторів кластера, де лінійні комбіновані ваги повинні бути всі нульові, крім одиничного 1 . Це також робиться для мінімізації похибки відновлення середнього квадрата.нн1
Таким чином, K-засоби можна розглядати як надзвичайно розріджений PCA.
Що робить папір Ding & He, це зробити цей зв'язок більш точним.
На жаль, папір Ding & He містить деякі неохайні формулювання (в кращому випадку) і їх легко зрозуміти неправильно. Наприклад, може здатися, що Дінг і Він стверджують, що довели, що центроїди кластера кластерного розчину K-означає лежать у розмірному підпростірі PCA:( К- 1 )
Теорема 3.3. Підпростір кластерного кластера охоплюється першими
основними напрямками [...].К- 1
Для це означатиме, що проекції на вісь PC1 обов'язково будуть негативними для одного кластера і позитивними для іншого кластера, тобто вісь PC2 відмінно розділить кластери.К= 2
Це або помилка, або якесь неохайне написання; у будь-якому випадку, якщо сприймати буквально, саме ця претензія є помилковою.
Почнемо з розгляду деяких прикладів іграшок у 2D для . Я генерував декілька зразків із двох нормальних розподілів з однаковою матрицею коваріації, але різними засобами. Потім я керував і K-засобами, і PCA. На наступному малюнку показано графік розсіювання даних, наведених вище, і ті ж дані, які пофарбовані відповідно до рішення К-засобів нижче. Я також показую перший головний напрямок як чорну лінію та класові центроїди, знайдені K-засобами з чорними хрестами. Вісь PC2 показана пунктирною чорною лінією. K-засоби повторювали 100 разів з випадковими насінням, щоб забезпечити конвергенцію до глобального оптимуму.К= 2100
Зрозуміло, що навіть незважаючи на те, що центроїди класу, як правило, досить близькі до першого напряму ПК, вони не падають саме на нього. Більше того, незважаючи на те, що вісь PC2 ідеально розділяє кластери в підгруппах 1 і 4, в підгруппах 2 і 3 є пара точок на її стороні.
Тож угода між K-засобами та PCA є досить хорошою, але це не точно.
Отже, що довели Дінг та Він? Для простоти я розгляну лише випадок. Нехай кількість балів, присвоєних кожному кластеру, буде n 1 і n 2, а загальна кількість балів n = n 1 + n 2 . Дотримуючись Ding & He, давайте визначимо вектор індикатора кластера q ∈ R n так: q i = √К= 2н1н2n = n1+ н2 q∈ Rн якщоi-та точка належить кластеру 1, аqi=-√qi= n2/ н н1------√i якщо він належить кластеру 2. Індекс індикатора кластера має одиницю довжини‖q‖=1і є "в центрі", тобто його елементи дорівнюють нулю.qi= - n1/ н н2------√∥ q∥ = 1∑ qi= 0
Дінг і Він показують, що функція втрати K-означає (що алгоритм K-засобів мінімізується) може бути еквівалентно переписана як , де - Граматична матриця скалярних добутків між усіма точками: , де - матриця даних та - це централізована матриця даних.∑к∑i( хi- мкк)2G n × n G = X ⊤ c X c X n × 2 X c- q⊤G qГn × nG = X⊤cХcХn × 2Хc
(Примітка. Я використовую позначення та термінологію, яка трохи відрізняється від їхньої роботи, але я вважаю більш зрозумілою).
Отже, рішення K-означає - це центрований одиничний вектор, максимізуючий . Неважко показати, що перший головний компонент (при нормалізації мати одиничну суму квадратів) є провідним власним вектором матриці Грама, тобто він також є центрованим одиничним вектором максимізацією . Єдина відмінність полягає в тому, що додатково обмежується лише двома різними значеннями, тоді як не має цього обмеження.q ⊤ G q p p ⊤ G pqq⊤G qpp⊤Г рpqp
Іншими словами, K-засоби та PCA максимізують однакову цільову функцію , з тією лише різницею, що K-засоби мають додаткові «категоричні» обмеження.
Цілком очевидно, що більшість випадків рішення K-засоби (обмежені) та PCA (необмежені) будуть досить близькими один до одного, як ми бачили вище в моделюванні, але не слід очікувати, що вони будуть однаковими. Якщо взяти і встановити всі його негативні елементи рівними а всі його позитивні елементи до , як правило, не дасть точно . - √p √- н1/ н н2------√н2/ н н1------√q
Дінг і Він, здається, добре це розуміють, оскільки формулюють свою теорему так:
Теорема 2.2. Для кластеризації K - означає, де , безперервне рішення індикатора кластера є [першим] головним компонентомК= 2
Зауважте, що слова "безперервне рішення". Після доведення цієї теореми вони додатково коментують, що PCA можна використовувати для ініціалізації ітерацій K-засобів, що має повний сенс, враховуючи, що ми очікуємо, що буде близьким до . Але ще потрібно виконувати ітерації, оскільки вони не тотожні.pqp
Однак Дінг і Він далі розробили більш загальне лікування для і, нарешті, сформулювали теорему 3.3 якК> 2
Теорема 3.3. Підпростір кластерного кластера охоплюється першими
основними напрямками [...].К- 1
Я не пройшов математику розділу 3, але вважаю, що ця теорема насправді також відноситься до "безперервного рішення" K-засобів, тобто його вислів повинен читати "кластерний простір кластера безперервного рішення К-засобів є перекинувся [...] ".
Ding & He, однак, не мають такої важливої кваліфікації, а крім того, записують у своєму конспекті це
Тут ми доводимо, що основними компонентами є неперервні рішення дискретних показників належності кластерів для кластеризації K-засобів. Еквівалентно, ми показуємо, що підпростір, що охоплюється центроїдами кластера, задається спектральним розширенням матриці коваріації даних, усіченою на .К- 1
Перше речення абсолютно правильне, але друге - ні. Мені незрозуміло, чи це (дуже) неохайний текст чи справжня помилка. Я дуже ввічливо надіслав електронною поштою обом авторам прохання роз'яснити. (Оновлення через два місяці: я ніколи не чув від них.)
Код моделювання 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