K-keskmiste klasterdamine

Allikas: testwiki
Mine navigeerimisribale Mine otsikasti

k-keskmiste klasterdamine on meetod vektorite kvantimiseks, algselt signaalitöötluseks.[1] Meetod on populaarne andmekaeve klasteranalüüsis.

k-keskmiste klasterdamise eesmärk on jagada n objekti k klastrisse nii, et iga objekt kuuluks klastrisse, mille keskpunktile see kõige lähedamal on. Selle tulemusena jaotub andmeruum Voronoi rakkudeks.

Algoritm on sarnane k-lähima naabri algoritmiga, mis on tuntud masinõppe klassifitseerimises. k-lähima naabri algoritmi saab kasutada k-keskmiste algoritmist saadud klastrite keskpunktide peal, et klassifitseerida uusi andmeid olemasolevatesse klastritesse. Seda kutsutakse Rocchio algoritmiks või lähima tsentroidi klassifitseerijaks.

Kirjeldus

Olgu antud hulk objekte (x1,x2,...,xn), kus iga objekt on d-mõõtmeline vektor. Siis jagab k-keskmiste klasterdamise algoritm n objekti k(≤n) hulka S = {(S1,S2,...,Sk)} nii, et klastrisisene hälvete ruutude summa oleks minimaalne (klastrisisene ruutude summa).

Eesmärk on leida

argmin𝐒i=1k𝐱Si𝐱μi2=argmin𝐒i=1k|Si|VarSi,

kus μi on Si punktide keskmine. See on võrdväärne samas klastris olevate punktipaaride hälvete minimeerimisega:

argmin𝐒i=1k12|Si|𝐱,𝐲Si𝐱𝐲2.

Selle võrdväärsuse saab tuletada valemist 𝐱Si𝐱μi2=𝐱𝐲Si(𝐱μi)(μi𝐲). Kuna koguhälve on konstantne, siis see on samuti võrdväärne erinevates klastrites olevate punktipaaride hälvete maksimeerimisega (klastritevaheline ruutude summa).[2]

Algoritm

Standardne algoritm

See algoritm on levinuim klasterdamise algoritm. See kasutab iteratiivset täiustamise meetodit. Seda algoritmi kutsutakse k-keskmiste algoritmiks. Just arvutiteaduses kutsutakse seda ka Lloydi algoritmiks.

Esiteks seadistatakse k keskpunkti m1,m2,...,mk, seejärel algoritm kordab kahte sammu:[3]

Ülesande samm: määrata iga objekt klastrisse, mille keskpunktile on antud objekt eukleidilise kaugusega kõige lähemal. (Matemaatiliselt tähendab see, et jaotame objektid vastavalt Voronoi diagrammiga, mille keskpunktid tekitavad.

Si(t)={xp:xpmi(t)2xpmj(t)2 j,1jk},

kus iga objekti xp kohta on määratud täpselt üks klaster S(t) isegi siis, kui objekti oleks võimalik määrata rohkematesse klastritesse.

Uuenduse samm: Arvutada uued keskpunktid, milleks saavad tekkinud klastrite tsentroidid.

mi(t+1)=1|Si(t)|xjSi(t)xj

Algoritm on koondunud, kui ülesande sammus klastrid enam ei muutu. Pole garanteeritud, et algoritm leidis kõige optimaalsema lahenduse.[4]

See algoritm on tihti esitatud kui objektide lähimasse klastrisse määramine kauguse alusel. Mingi teise kauguse funktsiooni kasutamine (välja arvatud eukleidiline kaugus) võib takistada algoritmi koondumast. k-keskmiste algoritmile on pakutud välja erinevaid täiustusi, näiteks sfäärilist k-keskmist ja k-medoidi, mis lubavad kasutada teisi kaugusmeetmeid.

Initsialiseerimine

Kõige sagedamini kasutatakse esimeste keskpunktide seadistamiseks Forgy ja suvalist jaotust.[5] Forgy meetod valib suvaliselt k objekti ja kasutab neid algsete keskmistena. Suvaline jaotuse meetod jagab kõik objektid suvaliselt k klastrisse ja seejärel teeb uuenduse sammu. Forgy meetod kipub algseid keskmisi hajutama, kuid suvalise jaotuse meetod paigutab kõik andmete keskele.[5]

Viited