DBSCAN: Kas tas ir? Kad to lietot? Kā to izmantot.

DBSCAN (blīvuma balstīta lietojumprogrammu ar troksni telpiskā klasterizācija) ir populāra neuzraudzīta mācību metode, ko izmanto modeļu veidošanas un mašīnmācīšanās algoritmos. Pirms došanās tālāk, mums jādefinē, kas ir “neuzraudzīta” mācību metode. Neuzraudzītas mācību metodes ir tad, ja nav skaidra mērķa vai rezultāta, kuru mēs cenšamies atrast. Tā vietā mēs grupējam datus kopā, pamatojoties uz novērojumu līdzību. Lai palīdzētu noskaidrot, ņemsim par piemēru Netflix. Balstoties uz iepriekšējām izrādēm, kuras esat skatījies iepriekš, Netflix ieteiks šovus, lai jūs tos skatītos nākamreiz. Ikviens, kurš jebkad ir skatījies vai apmeklējis Netflix, ir redzējis zemāk redzamo ekrānu ar ieteikumiem (Jā, šis attēls tiek ņemts tieši no mana Netflix konta un, ja jūs nekad neesat skatījies Shameless, pirms es iesaku jums iekļūt šajā ASAP).

Tā kā es skatījos “Nekaunīgs”, Netflix iesaka skatīties vairākus citus līdzīgus šovus. Bet no kurienes Netflix apkopo šos ieteikumus? Uzskatot, ka tas mēģina paredzēt nākotni ar to, kuru šovu es turpināšu skatīties, Netflix nav par ko balstīt prognozes vai ieteikumus (nav skaidra noteikta mērķa). Tā vietā Netflix aplūko citus lietotājus, kuri arī iepriekš ir skatījušies “bezkaunību”, un skatās, ko šie lietotāji skatījās papildus “bezkaunībai”. To darot, Netflix apvieno savus lietotājus, balstoties uz interešu līdzību. Tas ir tieši tas, kā darbojas neuzraudzīta mācīšanās. Vienkārši apkopojiet novērojumus, pamatojoties uz līdzību, cerot izdarīt precīzus secinājumus, pamatojoties uz kopām.

Atpakaļ uz DBSCAN. DBSCAN ir klasterizācijas metode, kuru izmanto mašīnmācībā, lai nodalītu augsta blīvuma kopas no zema blīvuma kopām. Ņemot vērā to, ka DBSCAN ir klasterizācijas algoritms, kura pamatā ir blīvums, tas paveic lielu darbu, meklējot apgabalus datos, kuriem ir augsts novērojumu blīvums, salīdzinot ar datu jomām, kuras nav tik blīvas ar novērojumiem. DBSCAN var kārtot datus arī dažādu formu kopās, kas ir vēl viena būtiska priekšrocība. DBSCAN darbojas kā tāds:

  • Datu kopumu sadala n dimensijās
  • Katram datu kopas punktam DBSCAN izveido n dimensijas formu ap šo datu punktu un pēc tam saskaita, cik datu punktu ietilpst šajā formā.
  • DBSCAN šo formu uzskata par kopu. DBSCAN iteratīvi paplašina kopu, izejot cauri katram atsevišķam punktam klasterā un saskaitot citu tuvumā esošo datu punktu skaitu. Piemēram, ņemiet zemāk redzamo grafiku:

Soli pa solim izejot no iepriekšminētā procesa, DBSCAN sāksies, sadalot datus n dimensijās. Pēc tam, kad DBSCAN būs to izdarījis, tas sāksies nejaušā vietā (šajā gadījumā pieņemsim, ka tas bija viens no sarkanajiem punktiem), un tiks skaitīts, cik daudz citu punktu atrodas tuvumā. DBSCAN turpinās šo procesu, līdz tuvumā nebūs citu datu punktu, un pēc tam tiks izveidots otrais klasteris.

Kā jūs, iespējams, pamanījāt no grafikas, ir daži parametri un specifikācijas, kas mums jāpiešķir DBSCAN, pirms tā veic savu darbu. Divi parametri, kas mums jāprecizē, ir šādi:

Cik ir minimālais datu punktu skaits, kas nepieciešams, lai noteiktu vienu kopu?
Cik tālu viens punkts var atrasties no nākamā punkta tajā pašā klasterī?

Atsaucoties uz grafiku, epsilons ir rādiuss, kas dots, lai pārbaudītu attālumu starp datu punktiem. Ja kāds punkts atrodas cita punkta epsilona attālumā, šie divi punkti atradīsies vienā klasterī.

Turklāt šajā scenārijā minimālais nepieciešamais punktu skaits ir 4. Ejot cauri katram datu punktam, ja vien DBSCAN atrod 4 punktus viena no otra epsilona attālumā, tiek izveidots klasteris.

SVARĪGI: Lai punktu varētu uzskatīt par “galveno” punktu, tajā jābūt minimālajam punktu skaitam epsilona attālumā. Ergo, vizualizācijai faktiski ir tikai divi galvenie punkti. Skatiet šeit esošo dokumentāciju un jo īpaši aplūkojiet parametru min_samples.

Jūs arī pamanīsit, ka zilais punkts grafikā nav ietverts nevienā klasterī. DBSCAN ne vienmēr klasificē katru datu punktu, un tāpēc tas ir drausmīgs, apstrādājot datu kopas novirzienus. Pārbaudīsim zemāk redzamo grafiku:

Kreisajā attēlā ir attēlota tradicionālāka klasterizācijas metode, kurā nav ņemta vērā daudzdimensionalitāte. Tā kā labajā attēlā parādīts, kā DBSCAN var salikt datus dažādās formās un dimensijās, lai atrastu līdzīgas kopas.

Kreisajā attēlā ir attēlota tradicionālāka klasterizācijas metode, piemēram, K-Means, kas neietver daudzdimensionalitāti. Tā kā labajā attēlā parādīts, kā DBSCAN var salikt datus dažādās formās un dimensijās, lai atrastu līdzīgas kopas. Labajā attēlā mēs arī pamanām, ka punkti gar datu kopas ārējo malu nav klasificēti, kas liek domāt, ka tie ir pārspīlēti starp datiem.

DBSCAN priekšrocības:

  • Lieliski atdala augsta blīvuma kopas no zema blīvuma kopām noteiktā datu kopā.
  • Lieliski darbojas, ja datu kopā tiek apstrādāti izņēmuma gadījumi.

DBSCAN trūkumi:

  • Nedarbojas labi, strādājot ar dažāda blīvuma kopām. Lai gan DBSCAN lieliski atdala augsta blīvuma kopas no zema blīvuma kopām, DBSCAN cīnās ar līdzīga blīvuma kopām.
  • Cīnās ar augstas dimensijas datiem. Es zinu, ka viss šis raksts, ko esmu teicis, kā DBSCAN lieliski palīdz sagrupēt datus dažādās dimensijās un formās. Tomēr DBSCAN var sasniegt tik tālu, ka, ja tiek doti dati ar pārāk daudzām dimensijām, DBSCAN cieš

Zemāk es esmu iekļāvis, kā ieviest DBSCAN Python, kurā pēc tam es izskaidroju metriku un novērtēju jūsu DBSCAN modeli.

DBSCAN ieviešana Python

1. Datu piešķiršana kā mūsu X vērtības
Atcerieties, tā kā šī ir neuzraudzīta mācīšanās, mums nav skaidru y vērtību, ko iestatīt.
2. Tūlītēja mūsu DBSCAN modeļa izveidošana. Zemāk esošajā kodā epsilon = 3 un min_samples ir minimālais punktu skaits, kas nepieciešams klastera izveidošanai.
3. Uzglabāt DBSCAN izveidotās etiķetes
4. Identificēšana, kuri punkti veido mūsu “pamatpunktus”
5. Kopu skaita aprēķināšana
6. Silueta rezultāta aprēķināšana

Metrika DBSCAN veiktspējas mērīšanai:

Silueta rādītājs: Silueta punktu skaitu aprēķina, izmantojot vidējo kopas attālumu starp punktiem un vidējo tuvākās kopas attālumu. Piemēram, klasterim, kurā ir daudz datu punktu, kas atrodas ļoti tuvu viens otram (augsts blīvums) UN atrodas tālu no nākamā tuvākā klastera (kas liecina, ka klasteris ir ļoti unikāls salīdzinājumā ar nākamo tuvāko), tam būs izteikts silueta vērtējums . Silueta vērtējums svārstās no -1 līdz 1, kur -1 ir sliktākais iespējamais rezultāts un 1 ir labākais rezultāts. Silueta vērtējums 0 norāda uz klasteru pārklāšanos.

Inerce: Inerce mēra kvadrātu iekšējās kopas summu (kvadrātu summa ir visu atlikumu summa). Inerci izmanto, lai izmērītu, cik savstarpēji saistīti ir kopas, jo zemāks inerces vērtējums, jo labāk. Tomēr ir svarīgi atzīmēt, ka inerce lielā mērā ir atkarīga no pieņēmuma, ka kopas ir izliektas (sfēriskas formas). DBSCAN ne vienmēr sadala datus sfēriskos klasteros, tāpēc inerce nav laba metrika, ko izmantot, lai novērtētu DBSCAN modeļus (tieši tāpēc inerci iepriekš minētajā kodā neiekļāvu). Inerci biežāk izmanto citās klasterizācijas metodēs, piemēram, K nozīmē klasterizāciju.

Citi resursi:

Naftali Harris emuārs ir milzīgs papildu resurss, lai iegūtu vairāk informācijas