DBSCAN: Mis see on? Millal seda kasutada? Kuidas seda kasutada.

DBSCAN (mürarakenduste tiheduspõhine ruumiline rühmitus) on populaarne juhendamata õppemeetod, mida kasutatakse mudelite koostamise ja masinõppe algoritmides. Enne kui kaugemale jõuame, peame määratlema, mis on “juhendamata” õppemeetod. Juhendamata õppemeetodid on siis, kui puudub selge eesmärk või tulemus, mida me püüame leida. Selle asemel koondame andmed vaatluste sarnasuse põhjal kokku. Selgituse huvides võtame näiteks Netflixi. Varasemate vaadete põhjal, mida olete varem vaadanud, soovitab Netflix teile järgmisi saateid vaadata. Kõik, kes on kunagi Netflixi jälginud või seda käinud, on allolevat ekraani näinud koos soovitustega (jah, see pilt on tehtud otse minu Netflixi kontolt ja kui te pole kunagi häbenemata jälginud, siis soovitan teil sellesse ASAP-i sattuda).

Kuna ma vaatasin 'Häbitu', soovitab Netflix vaadata mitut muud sarnast saadet. Aga kust Netflix neid soovitusi kogub? Arvestades seda, et püütakse ennustada tulevikku sellega, millist saadet ma järgmisena vaatan, pole Netflixil midagi, millele ennustustele või soovitustele tugineda (puudub selge lõplik eesmärk). Selle asemel vaatab Netflix teisi kasutajaid, kes on ka varem häbitu vaadanud, ja vaatab lisaks sellele, mida need kasutajad lisaks häbitule ka vaatasid. Sellega klastrib Netflix oma kasutajad huvide sarnasuse põhjal. Täpselt nii töötab juhendamata õpe. Lihtsalt grupeerige vaatlused kokku sarnasuse põhjal, lootes klastrite põhjal teha täpsed järeldused.

Tagasi DBSCAN-i. DBSCAN on klastrimismeetod, mida kasutatakse masinõppes suure tihedusega klastrite eraldamiseks madala tihedusega klastritest. Arvestades, et DBSCAN on tiheduspõhine klasterdamisalgoritm, teeb see ära suure töö, otsides andmetes alasid, millel on suur vaatluste tihedus, võrreldes andmete piirkondadega, mis pole vaatluste osas eriti tihedad. DBSCAN võib andmeid sorteerida ka erineva kujuga klastritesse - see on veel üks tugev eelis. DBSCAN töötab sellisena:

  • Jagatakse andmekogum n-i mõõtmeteks
  • Andmekogu iga punkti jaoks moodustab DBSCAN selle andmepunkti ümber n-mõõtmelise kuju ja loendab seejärel, mitu andmepunkti selle kuju alla kuulub.
  • DBSCAN loeb selle kuju klastriks. DBSCAN laiendab klastrit korduvalt, läbides klastri iga üksiku punkti ja loendades läheduses asuvate teiste andmepunktide arvu. Näite saamiseks kasutage allolevat graafikat:

Eelnimetatud protsessi samm-sammult läbi viies jagab DBSCAN andmed n-mõõtmeteks. Pärast seda, kui DBSCAN on seda teinud, algab see juhuslikult (eeldatakse sel juhul, et see oli üks punaseid punkte) ja loendatakse, kui palju teisi punkte läheduses on. DBSCAN jätkab seda protsessi seni, kuni läheduses pole ühtegi muud andmepunkti, ja siis hakkab see moodustama teise klastri.

Nagu olete juba graafikast märganud, on meil olemas mõned parameetrid ja spetsifikatsioonid, mis peame enne töö alustamist andma DBSCAN-ile. Kaks parameetrit, mida peame täpsustama, on sellised:

Kui palju on minimaalset andmepunkti vaja ühe klastri määramiseks?
Kui kaugel võib üks punkt olla järgmisest punktist samas klastris?

Graafikale tagasi viidates on epsilon raadius, mis on antud andmepunktide vahelise kauguse testimiseks. Kui mõni punkt jääb teise punkti epsiloni kaugusele, asuvad need kaks punkti samas rühmas.

Lisaks on selle stsenaariumi korral minimaalne nõutav punktide arv 4. Iga andmepunkti läbimisel moodustub klaster, kuni DBSCAN leiab 4 punkti üksteisest epsiloni kaugusel.

TÄHTIS: Selleks, et punkti saaks pidada tuumpunktiks, peab see sisaldama minimaalset punktide arvu epsiloni kauguses. Ergo, visualiseerimisel on tegelikult ainult kaks põhipunkti. Vaadake siin olevat dokumentatsiooni ja eriti parameetrit min_samples.

Samuti märkate, et graafiline sinine punkt ei sisaldu üheski klastris. DBSCAN EI kategoriseeri tingimata igat andmepunkti ja on seetõttu andmestikus kõrvalnäitajate käsitlemisega kohutav. Võimaldab uurida järgmist graafikat:

Vasakpoolne pilt kujutab traditsioonilisemat klastrimismeetodit, mis ei arvesta mitmemõõtmelisusega. Parempoolsel pildil on näidatud, kuidas DBSCAN suudab andmeid koondada erineva kuju ja mõõtmetega, et leida sarnaseid kobaraid.

Vasakpoolne pilt kujutab traditsioonilisemat rühmitusmeetodit, näiteks K-Means, mis ei arvesta mitmemõõtmelisusega. Parempoolsel pildil on näidatud, kuidas DBSCAN suudab andmeid koondada erineva kuju ja mõõtmetega, et leida sarnaseid kobaraid. Samuti märkame parempoolsel pildil, et punktid piki andmestiku välisserva ei ole klassifitseeritud, mis viitab sellele, et nad on andmete hulgas kaldu.

DBSCAN eelised:

  • Suudab eraldada antud andmestikus suure tihedusega klastrid ja madala tihedusega klastrid.
  • Sobib suurepäraselt kõrvaliste andmete käitlemisega andmekogumis.

DBSCAN puudused:

  • Ei tööta erineva tihedusega klastritega tegelemisel hästi. Kui DBSCAN eraldab suure tihedusega klastrid madala tihedusega klastritest, siis DBSCAN võitleb sarnase tihedusega klastritega.
  • Võitleb suurte mõõtmete andmetega. Ma tean, et see kogu artikkel on mulle öelnud, kuidas DBSCAN oskab andmeid koondada erinevatesse mõõtmetesse ja kujudesse. DBSCAN võib aga nii kaugele minna, kui liiga paljude mõõtmetega andmete korral kannatab DBSCAN

Allpool olen lisanud, kuidas DBSCAN-i Pythonis rakendada, kus pärast seda selgitan mõõdikuid ja teie DBSCAN-i mudeli hindamist

DBSCANi rakendamine Pythonis

1. Andmete määramine meie X-väärtusteks
Pidage meeles, et kuna see on juhendamata õpe, pole meil selgeid y väärtusi, mida määrata.
2. Meie DBSCAN-i mudeli kohene käivitamine. Allolevas koodis on epsilon = 3 ja min_samples minimaalne punktide arv, mis klastri moodustamiseks vajalik.
3. DBSCANi moodustatud siltide hoidmine
4. Meie põhipunktide moodustavate punktide tuvastamine
5. Klastrite arvu arvutamine
6. Silueti punkti arvutamine

Mõõdikud DBSCAN jõudluse mõõtmiseks:

Silueti skoor: silueti skoor arvutatakse, kasutades keskmist klastri sisemist kaugust punktide vahel ja klastri lähimat keskmist kaugust. Näiteks klastril, kus on palju andmepunkte, mis asuvad üksteisele väga lähedal (suur tihedus), ja asub järgmisest lähimast klastrist kaugel (mis näitab, et klaster on järgmise ainulaadsega võrreldes väga ainulaadne), on tugev siluettitulem . Silueti tulemus on vahemikus -1 kuni 1, kusjuures -1 on halvim võimalik tulemus ja 1 on parim tulemus. Siluetttulemused 0 viitavad klastrite kattumisele.

Inerts: inerts mõõdab ruutude sisemise klastri summat (ruutude summa on kõigi jääkide summa). Inertsiat kasutatakse omavahel seotud klastrite mõõtmiseks, mida madalam on inertsitulemus, seda parem. Siiski on oluline märkida, et inerts sõltub suuresti eeldusest, et kobarad on kumerad (sfäärilise kujuga). DBSCAN ei jaga andmeid tingimata sfäärilistesse klastritesse, seetõttu pole inerts hea mõõdik, mida kasutada DBSCAN-i mudelite hindamisel (sellepärast ei lisanud ma inertsit ülaltoodud koodi). Inertsiat kasutatakse sagedamini teistes klastrimismeetodites, näiteks K-rühmitamine.

Muud ressursid:

Naftali Harrise ajaveeb on tohutu lisaallikas lisateabe saamiseks