Metoda k - means este cea mai populară metodă de grupare . A fost inventat în anii 1950 de matematicianul Hugo Steinhaus [1] și aproape simultan de Stuart Lloyd [2] . A câștigat o popularitate deosebită după munca lui McQueen [3] .
Acțiunea algoritmului este de așa natură încât urmărește să minimizeze abaterea pătrată totală a punctelor clusterului de la centrele acestor clustere:
unde este numărul de clustere, sunt clusterele rezultate , și sunt centrele de masă ale tuturor vectorilor din cluster .
Prin analogie cu metoda componentelor principale , centrele clusterelor sunt numite și puncte principale , iar metoda în sine este numită metoda punctelor principale [4] și este inclusă în teoria generală a obiectelor principale care oferă cea mai bună aproximare a datelor. [5] .
Algoritmul este o versiune a algoritmului EM , folosit și pentru a separa un amestec de gaussieni . Împarte setul de elemente ale spațiului vectorial într-un număr precunoscut de clustere k .
Ideea principală este că la fiecare iterație centrul de masă este recalculat pentru fiecare cluster obținut la pasul anterior, apoi vectorii sunt împărțiți din nou în clustere în funcție de care dintre noile centre s-a dovedit a fi mai aproape conform metricii alese.
Algoritmul se termină atunci când nu există nicio modificare a distanței intracluster la o anumită iterație. Acest lucru se întâmplă într-un număr finit de iterații, deoarece numărul de partiții posibile ale unei mulțimi finite este finit și la fiecare pas abaterea pătrată totală V scade, astfel încât bucla este imposibilă.
După cum arată David Arthur și Sergey Vasilvitsky, pe unele clase de mulțimi , complexitatea algoritmului în ceea ce privește timpul necesar pentru convergență este [6] .
Acțiunea algoritmului în cazul bidimensional. Punctele de plecare sunt alese aleatoriu.
Implementarea rețelei neuronale a K-means este cunoscută și utilizată pe scară largă - o rețea de cuantizare vectorială a semnalelor (una dintre versiunile rețelelor neuronale ale lui Kohonen ).
Există o extensie k-means++ , care vizează alegerea optimă a valorilor inițiale ale centrelor de cluster.
În algoritmii de învățare profundă , metoda k-means este uneori folosită nu pentru scopul propus (clasificare prin clustering), ci pentru a crea așa-numitele filtre (nuclee de convoluție, dicționare). De exemplu, pentru recunoașterea imaginii, algoritmul k-means este alimentat cu bucăți aleatorii mici de imagini ale eșantionului de antrenament, să zicem, cu dimensiunea de 16x16, ca un vector liniar, fiecare element al căruia codifică luminozitatea punctului său. Numărul de clustere k este setat mare, de exemplu, 256. Metoda k-means antrenată, în anumite condiții, produce centrii cluster (centroizi), care sunt baze convenabile în care poate fi descompusă orice imagine de intrare. Astfel de centroizi „antrenați” sunt utilizați în continuare ca filtre, de exemplu, pentru o rețea neuronală convoluțională ca nuclee de convoluție sau alte sisteme similare de viziune artificială [8] . Astfel, învățarea nesupravegheată se realizează folosind metoda k-means.
Învățare automată și extragerea datelor | |
---|---|
Sarcini | |
Învățarea cu un profesor | |
analiza grupului | |
Reducerea dimensionalității | |
Prognoza structurală | |
Detectarea anomaliilor | |
Modele grafice probabilistice | |
Rețele neuronale | |
Consolidarea învățării |
|
Teorie | |
Reviste și conferințe |
|