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.
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
,
kus on Si punktide keskmine. See on võrdväärne samas klastris olevate punktipaaride hälvete minimeerimisega:
.
Selle võrdväärsuse saab tuletada valemist . Kuna koguhälve on konstantne, siis see on samuti võrdväärne erinevates klastrites olevate punktipaaride hälvete maksimeerimisega (klastritevaheline ruutude summa).[2]
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.
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.
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.
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]
{{raamatuviide}}
: CS1 hooldus: mitu nime: autorite loend (link)
{{raamatuviide}}
: CS1 hooldus: mitu nime: autorite loend (link)
{{cite conference}}
: eiran tundmatut parameetrit |booktitle=
, kasuta parameetrit (|book-title=
) (juhend)