Pisteiden järjestäminen klusterointirakenteen tunnistamiseksi ( OPTICS ) on algoritmi [1] klustereiden löytämiseksi paikkatiedoista tiheyden perusteella . Algoritmin esittelivät Michael Ankerst, Markus M. Breunig, Hans-Peter Kriegel ja Jörg Sander [2] . Algoritmin perusidea on samanlainen kuin DBSCAN [3] , mutta algoritmi on suunniteltu pääsemään eroon yhdestä DBSCAN-algoritmin tärkeimmistä heikkouksista - ongelmasta havaita merkityksellisiä klustereita tiedoissa, joilla on eri tiheydet. Tätä varten tietokantapisteet järjestetään (lineaarisesti) siten, että spatiaalisesti läheisistä pisteistä tulee järjestyksen naapureita. Lisäksi jokaiselle pisteelle tallennetaan erityinen etäisyys, joka edustaa tiheyttä, joka on oletettava klusterille, jotta pisteet kuuluvat samaan klusteriin. Tämä esitetään dendrogrammina .
Kuten DBSCAN , OPTICS-algoritmi vaatii kaksi parametria - ε -parametri kuvaa huomioon otettavan enimmäisetäisyyden (säteen) ja MinPts- parametri kuvaa klusterin muodostamiseen tarvittavien pisteiden määrää. Piste p on ydinpiste , jos sen ε -naapurissa on vähintään MinPts pisteitä . Toisin kuin DBSCAN , OPTICS-algoritmi ottaa huomioon myös pisteet, jotka ovat osa tiheämpää klusteria, joten jokaiselle pisteelle on määritetty perusetäisyys , joka kuvaa etäisyyttä MinPts :n lähimpään pisteeseen:
Tässä core-dist = ydinetäisyys, = -th etäisyyden nousevassa järjestyksessä .
Pisteen o saavutettavissa oleva etäisyys pisteestä p on joko pisteiden o ja p välinen etäisyys tai pisteen p perusetäisyys sen mukaan , kumpi on suurempi:
Tässä tavoitettavuus-dist = tavoitettavissa oleva etäisyys.
Jos p ja o ovat lähimmät naapurit ja , voimme olettaa, että p ja o kuuluvat samaan klusteriin.
Sekä perus- että saavutettavat etäisyydet ovat määrittelemättömiä, ellei ole riittävän tiheää klusteria ( soveltuen ε :lle ). Riittävän suurella ε :llä tätä ei koskaan tapahdu, mutta silloin mikä tahansa ε -naapurustokysely palauttaa koko tietokannan, mikä johtaa ajoaikaan . Parametria ε tarvitaan poistamaan löysät klusterit, jotka eivät enää ole kiinnostavia, ja siten nopeuttamaan algoritmia.
Parametri ε on tarkasti ottaen valinnainen. Se voidaan yksinkertaisesti asettaa suurimmalle mahdolliselle arvolle. Kuitenkin, kun spatiaalinen indeksi on saatavilla, se vaikuttaa laskennan monimutkaisuuteen. OPTICS eroaa DBSCANista siinä, että tätä parametria ei oteta huomioon, jos ε voi vaikuttaa, niin vain asettamalla maksimiarvon.
OPTICS-algoritmin peruslähestymistapa on sama kuin DBSCAN , mutta sen sijaan, että tuettaisiin monia tunnettuja, mutta ei vielä käsiteltyjä klusterin jäseniä, käytetään prioriteettijonoa (eli indeksoitua kasaa ).
OPTIIKA (DB, eps, MinPts) jokaiselle pisteelle p DB:stä p.reachable_distance=undefined jokaiselle raakapisteelle p DB:stä N=getNaapurit (p, eps) merkitse p käsitellyksi laita p järjestettyyn luetteloon if (perusetäisyys(p, eps, minpts) != määrittelemätön) Seeds=tyhjä prioriteettijono päivitä (N, p, Siemenet, eps, Minpts) jokaista seuraavaa q:ta varten Seedsistä N'=getNeighbors(q, eps) merkitse q käsitellyksi laita q järjestetylle listalle if (perusetäisyys(q, eps, minpts) != määrittelemätön) päivitys (N', q, siemenet, eps, minpts)Update()-proseduurissa Seeds-prioriteettijono päivitetään pisteiden -naapureiden toimesta ja vastaavasti:
päivitys (N, p, Seeds, eps, Minpts) coredist=base_distance(p, eps, MinPts) jokaiselle o:lle N:ssä jos (ei käsitelty) new_dist_dist=max(coredist, dist(p,o)) if (o.reachable_distance == undefined) // piste o ei ole Seedsissä o.reach_distance=new_reach_distance Seeds.insert(o, new_delivery_dist) muussa tapauksessa // piste o siemenissä, tarkista parannukset jos (uusi_tavoittavuuden_etäisyys < o.tavoittavuuden_etäisyys) o.reach_distance=new_reach_distance Seeds.move_up(o, new_advance_growth)OPTICS sijoittaa pisteet tiettyyn järjestykseen ja merkitsee ne pienimmällä saavutettavalla etäisyydellä (alkuperäisessä algoritmissa pääetäisyys myös muistetaan, mutta sitä ei tarvita jatkokäsittelyyn).
Saavutettavuuskaavion (erityinen puukaavio ) avulla on helppo saada hierarkkinen klusterirakenne. Tämä on 2D-kaavio, jossa pisteet piirretään x-akselille siinä järjestyksessä, jossa ne on käsitelty OPTICS-algoritmilla, ja saavutettava etäisyys piirretään y-akselille. Koska klusteriin kuuluvilla pisteillä on pieni tavoitettavissa oleva etäisyys lähimpään naapuriinsa, klusterit näyttävät laaksoilta saavutettavuuskuvaajalla. Mitä syvempi laakso, sitä tiheämpi klusteri.
Yllä oleva kuva havainnollistaa tätä käsitettä. Kuvan vasemmassa yläkulmassa näkyy simuloitu tietojoukko. Kuvan oikea yläosa visualisoi OPTICS-algoritmilla saatua virittävää puuta ja kuvan alaosassa on OPTICSilla saatu saavutettavuuskäyrä. Tämän kaavion värit ovat otsikoita, eikä algoritmi laske niitä. On kuitenkin selvästi nähtävissä, kuinka kaavion laaksot vastaavat annetun tietojoukon klustereita. Tämän kuvan keltaisia pisteitä pidetään kohinaina, eivätkä ne vastaa laaksoja. Niitä ei yleensä osoiteta millekään klusterille, paitsi hierarkkisen tuloksen kattavalle "kaikki tiedot" -klusterille.
Klusterien purkaminen tällaisesta kaaviosta voidaan tehdä manuaalisesti valitsemalla aikavälit x-akselilta kaavion katselun jälkeen, valitsemalla kynnys y-akselilta (silloin tulos on samanlainen kuin DBSCAN-klusterointi samoilla parametriarvoilla ja minPts, meidän tapauksessamme arvo 0,1 voi antaa hyviä tuloksia), tai käyttämällä erilaisia algoritmeja, jotka yrittävät määrittää laaksot kaavion jyrkkyyden, mutkan tai paikallisten maksimien perusteella. Tällä tavalla saadut klusterit ovat yleensä hierarkkisia , eikä niitä voida saada yhdellä DBSCAN-algoritmin ajolla.
Kuten DBSCAN , OPTICS algoritmi käsittelee jokaisen pisteen vain kerran ja suorittaa yhden naapurikyselyn tämän käsittelyn aikana. Kun annetaan spatiaalinen indeksi , joka varmistaa, että naapurustokysely suoritetaan ajallaan , saadaan kokonaiskestoaika . Alkuperäisen OPTICS-artikkelin kirjoittajat raportoivat jatkuvasta 1,6-kertaisesta hidastumisesta DBSCANiin verrattuna. Huomaa, että arvo voi vaikuttaa suuresti algoritmin kustannuksiin, koska liian suuri arvo voi lisätä naapurustokyselyn monimutkaisuuden lineaariseksi.
Erityisesti valinta (suurempi kuin tietojoukon enimmäisetäisyys) on mahdollista, mutta se johtaa luonnollisesti neliölliseen monimutkaisuuteen, koska naapuriluettelokysely palauttaa koko tietojoukon. Vaikka spatiaalista indeksiä ei olisi saatavilla, tämä johtaa ylimääräiseen keon ylläpitoon. Siksi tietojoukolle tulisi valita oikein.
OPTICS-OF [4] on OPTISIIN perustuva poikkeamien havaitsemisalgoritmi . Sitä käytetään pääasiassa poikkeamien poimimiseen olemassa olevasta OPTICS-algoritmin ajosta alhaisin kustannuksin verrattuna muihin poikkeavien erotusmenetelmiin. Tunnetuin versio paikallisten outlier-ilmaisualgoritmista perustuu samoihin käsitteisiin.
DeLi-Clu [5] ( Density -Link-Clustering ) yhdistää ideat yksittäisestä klusterointimenetelmästä ja OPTICS-algoritmista eliminoiden parametrin ja lisäämällä tehokkuuden parannuksia OPTICSiin verrattuna.
HiSC [6] on OPTIIKKAAN perustuva hierarkkinen aliavaruusklusterointimenetelmä (akselien rinnalla).
HiCO [7] on OPTIIKKAAN perustuva hierarkkinen korrelaatioklusterointialgoritmi
DiSH [8] on parannus HiSC-algoritmiin, joka pystyy löytämään monimutkaisempia hierarkioita.
FOPTICS [9] on nopea toteutus, jossa käytetään satunnaisia projektioita.
HDBSCAN* [10] perustuu DBSCAN-algoritmin parannukseen jättämällä rajapisteet pois klustereista ja siten tiukempaan tiheystasojen määritelmään (Hartiganin mukaan) [11] .
ELKI tiedonlouhintajärjestelmässä on saatavilla OPTICSin, OPTICS-OF:n, DeLi-Clu:n, HiSC:n, HiCO:n ja DiSH:n Java-toteutuksia (joillekin etäisyysfunktioille kiihdytetyllä indeksillä ja automaattisella klusteroinnilla ξ-menetelmällä). Toinen Java-toteutus sisältää laajennuksen Weka-työkalupakettiin (ei tukea klusterointia ξ:n kanssa). R - kielipaketti "dbscan" sisältää OPTICS-algoritmin C++-toteutuksen (sekä perinteisen klusteroinnin, kuten dbscanin ja ξ:n kanssa), käyttämällä K-ulotteista puuta nopeuttamaan euklidisen etäisyyden indeksiä.
Python-kielellä on seuraavat toteutukset. OPTICS on saatavilla PyClustering-kirjastossa . HDBSCAN on saatavilla hdbscan-kirjastossa , joka on rakennettu scikit learningin päälle .
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|