Яке відношення між кластеризацією k-засобів та PCA?


60

Загальна практика застосовувати PCA (аналіз основних компонентів) перед алгоритмом кластеризації (наприклад, k-засоби). Вважається, що це покращує результати кластеризації на практиці (зниження шуму).

Однак мене цікавить порівняльне та поглиблене вивчення взаємозв'язку PCA та k-засобів. Наприклад, Кріс Дінг та Xiaofeng He, 2004 р., K-означає Кластеризація за допомогою аналізу основних компонентів, показали, що "основні компоненти - це безперервні рішення дискретних показників належності кластеру для кластеризації K-засобів". Однак мені важко зрозуміти цей документ, і Вікіпедія насправді стверджує, що це неправильно .

Також результати двох методів дещо відрізняються в тому сенсі, що PCA допомагає зменшити кількість "особливостей", зберігаючи дисперсію, тоді як кластеризація зменшує кількість "точок даних" шляхом підсумовування кількох балів за їх очікуваннями / засобами (у випадку k-засобів). Отже, якщо набір даних складається з точок з кожним ознаками, PCA спрямований на стиснення ознак, тоді як кластеризація має на меті стиснення -точок даних.T T NNTTN

Я шукаю непрофесійне пояснення взаємозв'язків між цими двома методиками + ще кілька технічних робіт, що стосуються двох методів.


2
Кластеризація також може розглядатися як зменшення особливостей. Де ви виражаєте кожен зразок за допомогою його кластерного призначення, або їх рідко кодуйте (отже, зменшіть до k ). Обидва ці підходи підтримують постійну кількість точок даних, зменшуючи при цьому параметри "функції". Tk
jeff

Відповіді:


72

Це правда, що кластеризація K-засобів та PCA, як видається, мають дуже різні цілі, і на перший погляд, схоже, не пов'язані. Однак, як пояснено у статті Ding & He 2004 K-означає Кластеризація за допомогою аналізу основних компонентів , між ними існує глибокий зв’язок.

Інтуїція полягає в тому, що PCA прагне представити всі векторів даних як лінійні комбінації невеликої кількості власних векторів, і робить це для мінімізації середньоквадратичної помилки відновлення. Навпаки, K-засоби прагнуть представити всі n векторів даних через невелику кількість центроїдів кластера, тобто представити їх у вигляді лінійних комбінацій невеликої кількості центроїдних векторів кластера, де лінійні комбіновані ваги повинні бути всі нульові, крім одиничного 1 . Це також робиться для мінімізації похибки відновлення середнього квадрата.nn1

Таким чином, K-засоби можна розглядати як надзвичайно розріджений PCA.

Що робить папір Ding & He, це зробити цей зв'язок більш точним.


На жаль, папір Ding & He містить деякі неохайні формулювання (в кращому випадку) і їх легко зрозуміти неправильно. Наприклад, може здатися, що Дінг і Він стверджують, що довели, що центроїди кластера кластерного розчину K-означає лежать у розмірному підпростірі PCA:(K1)

Теорема 3.3. Підпростір кластерного кластера охоплюється першими основними напрямками [...].K1

Для це означатиме, що проекції на вісь PC1 обов'язково будуть негативними для одного кластера і позитивними для іншого кластера, тобто вісь PC2 відмінно розділить кластери.K=2

Це або помилка, або якесь неохайне написання; у будь-якому випадку, якщо сприймати буквально, саме ця претензія є помилковою.

Почнемо з розгляду деяких прикладів іграшок у 2D для . Я генерував декілька зразків із двох нормальних розподілів з однаковою матрицею коваріації, але різними засобами. Потім я керував і K-засобами, і PCA. На наступному малюнку показано графік розсіювання даних, наведених вище, і ті ж дані, які пофарбовані відповідно до рішення К-засобів нижче. Я також показую перший головний напрямок як чорну лінію та класові центроїди, знайдені K-засобами з чорними хрестами. Вісь PC2 показана пунктирною чорною лінією. K-засоби повторювали 100 разів з випадковими насінням, щоб забезпечити конвергенцію до глобального оптимуму.K=2100

PCA проти K-означає

Зрозуміло, що навіть незважаючи на те, що центроїди класу, як правило, досить близькі до першого напряму ПК, вони не падають саме на нього. Більше того, незважаючи на те, що вісь PC2 ідеально розділяє кластери в підгруппах 1 і 4, в підгруппах 2 і 3 є пара точок на її стороні.

Тож угода між K-засобами та PCA є досить хорошою, але це не точно.

Отже, що довели Дінг та Він? Для простоти я розгляну лише випадок. Нехай кількість балів, присвоєних кожному кластеру, буде n 1 і n 2, а загальна кількість балів n = n 1 + n 2 . Дотримуючись Ding & He, давайте визначимо вектор індикатора кластера qR n так: q i = K=2n1n2n=n1+n2 qRn якщоi-та точка належить кластеру 1, аqi=-qi=n2/nn1i якщо він належить кластеру 2. Індекс індикатора кластера має одиницю довжиниq=1і є "в центрі", тобто його елементи дорівнюють нулю.qi=n1/nn2q=1qi=0

Дінг і Він показують, що функція втрати K-означає (що алгоритм K-засобів мінімізується) може бути еквівалентно переписана як , де - Граматична матриця скалярних добутків між усіма точками: , де - матриця даних та - це централізована матриця даних.ki(xiμk)2G n × n G = X c X c X n × 2 X cqGqGn×nG=XcXcXn×2Xc

(Примітка. Я використовую позначення та термінологію, яка трохи відрізняється від їхньої роботи, але я вважаю більш зрозумілою).

Отже, рішення K-означає - це центрований одиничний вектор, максимізуючий . Неважко показати, що перший головний компонент (при нормалізації мати одиничну суму квадратів) є провідним власним вектором матриці Грама, тобто він також є центрованим одиничним вектором максимізацією . Єдина відмінність полягає в тому, що додатково обмежується лише двома різними значеннями, тоді як не має цього обмеження.qG q p pG pqqGqppGppqp

Іншими словами, K-засоби та PCA максимізують однакову цільову функцію , з тією лише різницею, що K-засоби мають додаткові «категоричні» обмеження.

Цілком очевидно, що більшість випадків рішення K-засоби (обмежені) та PCA (необмежені) будуть досить близькими один до одного, як ми бачили вище в моделюванні, але не слід очікувати, що вони будуть однаковими. Якщо взяти і встановити всі його негативні елементи рівними а всі його позитивні елементи до , як правило, не дасть точно . - pn1/nn2n2/nn1q

Дінг і Він, здається, добре це розуміють, оскільки формулюють свою теорему так:

Теорема 2.2. Для кластеризації K - означає, де , безперервне рішення індикатора кластера є [першим] головним компонентомK=2

Зауважте, що слова "безперервне рішення". Після доведення цієї теореми вони додатково коментують, що PCA можна використовувати для ініціалізації ітерацій K-засобів, що має повний сенс, враховуючи, що ми очікуємо, що буде близьким до . Але ще потрібно виконувати ітерації, оскільки вони не тотожні.pqp

Однак Дінг і Він далі розробили більш загальне лікування для і, нарешті, сформулювали теорему 3.3 якK>2

Теорема 3.3. Підпростір кластерного кластера охоплюється першими основними напрямками [...].K1

Я не пройшов математику розділу 3, але вважаю, що ця теорема насправді також відноситься до "безперервного рішення" K-засобів, тобто його вислів повинен читати "кластерний простір кластера безперервного рішення К-засобів є перекинувся [...] ".

Ding & He, однак, не мають такої важливої ​​кваліфікації, а крім того, записують у своєму конспекті це

Тут ми доводимо, що основними компонентами є неперервні рішення дискретних показників належності кластерів для кластеризації K-засобів. Еквівалентно, ми показуємо, що підпростір, що охоплюється центроїдами кластера, задається спектральним розширенням матриці коваріації даних, усіченою на .K1

Перше речення абсолютно правильне, але друге - ні. Мені незрозуміло, чи це (дуже) неохайний текст чи справжня помилка. Я дуже ввічливо надіслав електронною поштою обом авторам прохання роз'яснити. (Оновлення через два місяці: я ніколи не чув від них.)


Код моделювання 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    

2
Я щойно заглянув у папір Ding & He. У теоремі 2.2 вони стверджують, що якщо зробити k-означає (з k = 2) деякої хмари даних p і також виконати PCA (на основі коваріацій) даних, то всі точки, що належать кластеру A, будуть негативними, і всі бали, що належать кластеру B, будуть позитивними за результатами PC1. Цікаве твердження, - воно повинно перевірятися в симуляціях. Однак проблема полягає в тому, що вона передбачає глобально оптимальне рішення K-засобів, я думаю; але як ми можемо знати, чи досягнута кластеризація була оптимальною?
ttnphns

1
@ttnphns, я оновив своє моделювання та малюнок, щоб перевірити цю заяву більш чітко. Якщо прогнози на PC1 повинні бути позитивними та негативними для класів A та B, це означає, що вісь PC2 повинна слугувати межею між ними. Це дуже близько до випадку у моїх 4 моделюваннях іграшок, але у прикладах 2 та 3 є кілька пунктів з неправильної сторони ПК2. Щодо конвергенції, я виконував kmeansфункцію зі 100 реплікаціями: вона щоразу вибирає різну випадкову ініціалізацію, а потім вибирає найкраще рішення, тому слід сподіватися, щоб досягти глобального оптимуму.
амеба каже, що повернеться Моніка

1
@ttnphns: Я думаю, я зрозумів, що відбувається, будь ласка, дивіться моє оновлення.
амеба каже, що повернеться до Моніки

амеба, дякую, що переварили статтю, про яку говорили, і за те, що ви зробили свої висновки (+2); і за те, щоб я особисто знав! Я з надією повернусь через пару днів, щоб прочитати та дослідити вашу відповідь. Але оцінюючи це вже зараз.
ttnphns

Видатний пост. Чи є причина, чому ви використовували Matlab, а не R? Цікаво, тому що я беру курс ML Coursera, а Ендрю Нг також використовує Matlab, на відміну від R або Python. Це загальний вибір ML?
Антоні Пареллада

10

PCA і K-засоби роблять різні речі.

PCA використовується для зменшення розмірності / вибору ознак / навчання представлення, наприклад, коли простір функцій містить занадто багато невідповідних або зайвих функцій. Мета - знайти внутрішню розмірність даних.

Ось двомірний приклад, який можна узагальнити до просторів вищого розміру. Набір даних має дві функції, і , кожне коло - це точка даних.уxy

введіть тут опис зображення

У зображенні має більшу величину, ніж . Це власні вектори. Розмір даних зменшується з двох вимірів до одного виміру (в цьому випадку не багато вибору), і це робиться, проектуючи на напрямок вектора (після обертання, коли стає паралельним або перпендикулярним до однієї з осей) . Це тому, що є ортогональним до найбільшої дисперсії. Один із способів думати про це - це мінімальна втрата інформації. (Знищена втрата, оскільки втрачена одна вісь координат).v 2 v 2 v 2 v 2v1v2v2v2v2

K-засоби - алгоритм кластеризації, який повертає природне групування точок даних, виходячи з їх подібності. Це особливий випадок моделей суміші Гаусса .

На зображенні нижче набір даних має три виміри. З тривимірного сюжету зліва видно, що розмір можна "скинути", не втрачаючи багато інформації. PCA використовується для проектування даних на два виміри. На малюнку зліва також показана площина проекції. Тоді K-засоби можуть бути використані на прогнозованих даних для позначення різних груп, на малюнку справа, закодованого різними кольорами.X

введіть тут опис зображення

PCA або інші методи зменшення розмірності застосовуються перед методами машинного навчання як без нагляду, так і під наглядом. Окрім наведених вами причин та тих, про які я згадував вище, він також використовується для візуалізації (проекція на 2D або 3D з більших розмірів).

Щодо статті, я не вірю, що існує якийсь зв’язок, PCA не має інформації щодо природного групування даних і працює з усіма даними, а не з підмножинами (групами). Якщо деякі групи можуть бути пояснені одним власним вектором (тільки тому, що конкретний кластер поширюється в цьому напрямку), це просто збіг обставин, і це не слід сприймати як загальне правило.

"PCA має на меті стиснення T-функцій, тоді як кластеризація спрямована на стиснення N точок даних."

Дійсно, стиснення - це інтуїтивний спосіб думати про PCA. Однак у K-значенні для опису кожної точки відносно кластера вам все одно потрібен хоча б такий самий обсяг інформації (наприклад, розміри) , де - відстань і зберігається замість . А також вам потрібно зберегти щоб знати, до чого відноситься дельта. Звичайно, ви можете зберігати і однак, ви не зможете отримати фактичну інформацію в даних.d δ i x i μ i d ixi=d(μi,δi)dδixiμidi

Кластеризація дійсно додає інформацію. Я вважаю це розбиттям даних на природні групи (які не обов'язково повинні бути непересічними), не знаючи, що означає мітка для кожної групи (ну, поки ви не подивитеся на дані в групах).


3
Те, як ваші ПК позначені у сюжеті, здається непослідовним із відповідним обговоренням у тексті. Зауважте, що PCA, як правило, застосовується до стовпців, а k-означає до рядків, обидва можуть бути застосовані до будь-якого. Я не читав газети, але, мабуть, думаю, саме про це вони говорять.
gung - Відновіть Моніку

Вибачте, я мав на увазі верхню цифру: а саме, мітки v1 та v2 для ПК.
gung - Відновіть Моніку

Добре, що може бути корисним (не можу зрозуміти, для чого) стиснути групи точок даних. Знайдіть групи, використовуючи k-засоби, стисніть записи на меншу кількість за допомогою pca. Щодо групування функцій, що може бути корисним.
shuriken x blue

2
Отже, ви по суті говорите, що папір помиляється? У ньому прямо вказано (див. 3-е та 4-те речення в рефераті) і стверджується, що математично доведено, що існує певний зв’язок, тоді як ви говорите, що зв'язку немає.
амеба каже, що відновіть Моніку

Що я отримав від цього: PCA покращує K-засоби кластеризації рішень. Зв'язок полягає в тому, що структура кластера вбудована в перші основні компоненти K - 1. Це і є внесок.
shuriken x blue

7

O(nd2+d3)

n2O(n2d+n3)O(knid)nk=2. K-засоби - це проблема оптимізації з найменшими квадратами, як і PCA. k-означає намагається знайти розділ даних з найменшими квадратами. PCA знаходить вектор членства кластеру з найменшими квадратами.

Перший власний вектор має найбільшу дисперсію, тому розділення на цей вектор (який нагадує членство кластера, а не координати вхідних даних!) Означає максимізацію між дисперсією кластера . Завдяки максимізації між дисперсією кластера, ви мінімізуєте дисперсію всередині кластера.

Але для справжніх проблем це марно. Це представляє лише теоретичний інтерес.


2
Було б чудово побачити дещо конкретніше пояснення / огляд статті "Дінг енд" (з якою пов'язана ОП). Я сам із цим (ще) не знайомий, але бачив, як це згадувалося достатньо разів, щоб бути досить цікавим.
Амеба каже: Відновити Моніку

3
Ти це маєш на увазі ? Так, я теж натрапив на це; Я думаю, що це лише додає моєї розгубленості. Я сподівався, що це та річ, яка могла б прояснити її для мене ... Тепер, коли я замислююся над цим, можливо, я мушу покласти це щедро. Я не думаю, що в наступні дні я встигну сам вивчити цю тему.
амеба каже, що повернеться до Моніки

3
Цей абзац у вікі дуже дивний. У ній сказано, що Ding & He (2001/2004) був і помилковим, і не новим результатом! Щоб продемонструвати, що це не нове, наводиться документ про 2004 рік (?!). Щоб продемонструвати, що це було неправильно, він наводить новішу статтю 2014 року, яка навіть не цитує Ding & He. Рибний.
Амеба каже, що повернеться до Моніки

3
Можливо, цитування спаму знову. Вікіпедія сповнена самореклами.
Аноні-Мус

1
n×nkk

4

Розв’язуючи k-засоби на його низькому рангу наближення O (k / epsilon) (тобто, проектуючи на проміжок перших найбільших сингулярних векторів, як у PCA), це дасть апроксимацію (1 + епсилон) у терміні мультиплікативної помилки.

Зокрема, проектування на k-найбільший вектор дало б 2-наближення.

Фактично, сума квадратних відстаней для будь-якого набору k центрів може бути наближена за цією проекцією. Тоді ми можемо обчислити coreset на зменшених даних, щоб зменшити вхід до poly (k / eps) точок, що наближає цю суму.

Дивіться: Ден Фельдман, Мелані Шмідт, Крістіан Солер: Перетворення великих даних у крихітні дані: основні набори постійного розміру для k-засобів, PCA та проективне кластеризація. СОДА 2013: 1434-1453


3

Інтуїтивний зв’язок PCA та KMeans

  1. Теоретично розмірний аналіз PCA (перший розмір K, який утримує значення, говорять, що 90% дисперсії ... не потребує прямого зв'язку з кластером K Means), проте значення використання PCA прийшло з а) практичного розгляду з огляду на природу об'єктів, які ми аналізуємо, як правило, природно кластеризуються навколо / розвиваються з (певного сегменту) їх основних компонентів (вік, стать ..) б) PCA усуває ці низькі розміри дисперсії (шум), тому сам додає значення (і формує відчуття, схоже на кластеризацію) ) зосередившись на цих ключових вимірах Простими словами, саме так, як вісь XY - це те, що допомагає нам освоїти будь-яку абстрактну математичну концепцію, але більш заздалегідь.

  2. K Засоби намагаються мінімізувати загальну відстань у кластері для даного K

  3. Для набору об'єктів з N параметрами розміру за замовчуванням подібні об'єкти матимуть найбільш "параметри" параметрів, за винятком декількох ключових відмінностей (наприклад, група молодих студентів ІТ, юних танцюристів, людей ... матиме деякі дуже схожі функції (низька дисперсія) але кілька ключових особливостей, які все ще є досить різноманітними, і фіксують ті "ключові головні компоненти", по суті, охоплюють більшість дисперсій, наприклад, колір, місце проживання .... Отже, низьке спотворення, якщо ми нехтуємо цими ознаками незначних відмінностей або перетворенням на нижчі ПК не втратять багато інформації
  4. Таким чином, "дуже ймовірно" і "дуже природно", що згрупувати їх разом для розгляду відмінностей (варіацій) має сенс для оцінки даних (наприклад, якщо ви робите 1000 опитувань за тиждень на головній вулиці, кластеризуючи їх на основі етнічних , вік або освіта, як це має сенс для ПК) В рамках місії K Means ми намагаємось встановити досить велику кількість K, щоб ці елементи групи (в кластері) мали загальну найменшу відстань (мінімізовану) між Centroid та в той час як вартість створити та запустити кластери K оптимально (кожен член як кластер не має сенсу, оскільки це занадто дорого для підтримання та не має значення)
  5. K Групування засобів може бути легко «візуально оглянуто», щоб бути оптимальним, якщо такий K знаходиться за основними компонентами (наприклад, якщо для людей різного віку, етнічних / реґіональних кластерів вони мають тенденцію висловлювати подібні думки, тому якщо ви кластерите ці опитування на основі ті ПК, які тоді досягають мети мінімізації (посилання 1) Також ці ПК (етнічні, вікові, релігійні) досить часто є ортогональними, отже, візуально виразними, переглядаючи PCA
  6. Однак ця інтуїтивна дедукція призводить до достатньої, але не необхідної умови. (Посилання 2: Однак, що PCA є корисним розслабленням кластеризації k-засобів, це не було новим результатом (див., Наприклад, [35]), і можна просто розкрити контрприклади до твердження про те, що підпростір центроїдів кластера охоплюється за основними напрямками. [36])

Вибір кластерів на основі / уздовж CP може комфортно привести до зручного механізму розподілу

Це може бути прикладом, якщо x є першим ПК по осі X: (........... CC1 ............... CC2 ..... ....... CC3 X ось), де, наприклад, вісь X, захоплює понад 9X% дисперсії, а скажімо, це єдиний ПК

6. Насправді PCA також використовується для візуалізації після того, як буде зроблено K Kans (Посилання 4)

Якщо дисплей PCA * наш K кластеризація результат ортогональний або близький, то це знак того, що наша кластеризація є звуком, кожен з яких має унікальні характеристики

(* оскільки за визначенням PCA виявляє / відображає ті основні розміри (від 1D до 3D), що скажімо, K (PCA) буде охоплювати, ймовірно, переважну більшість дисперсій.

Таким чином, PCA є корисним для візуалізації та підтвердження хорошої кластеризації, а також невід'ємно корисним елементом у визначенні кластеризації K Means - який повинен використовуватися до моменту K.

Довідка:

  1. https://msdn.microsoft.com/en-us/library/azure/dn905944.aspx
  2. https://en.wikipedia.org/wiki/Principal_component_analysis
  3. КЛАСТЕРНІ ВИКОРИСТАННЯ АНАЛІЗУ ПРИНЦИПАЛЬНОГО КОМПОНЕНТА: ЗАСТОСУВАННЯ АВТОМОБІЛЬНОГО ЗАБЕЗПЕЧЕННЯ НАРОДНИХ ЛЮДЕЙ (Combes & Azema)
  4. http://cs229.stanford.edu/notes/cs229-notes10.pdf Andrew Ng
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.