Izvajanje grozdenja K-pomeni na naboru podatkov o zločinih



Izvajanje združevanja Kmeans na zbirki podatkov o kriminalu v ZDA

V tem blogu boste razumeli, kaj je združevanje K-pomeni in kako ga je mogoče uporabiti na kriminalnih podatkih, zbranih v različnih zveznih državah ZDA. Podatki vsebujejo zločine, kot so napad, umor in posilstvo pri aretacijah na 100.000 prebivalcev v vsaki od 50 ameriških zveznih držav leta 1973. Skupaj z analizo podatkov boste izvedeli tudi o:

    • Iskanje optimalnega števila grozdov.
    • Zmanjšanje izkrivljanja
    • Ustvarjanje in analiza komolčne krivulje.
  • Razumevanje mehanizma algoritma k-pomeni.

Začnimo z analizo. Podatki so videti tako:





dataset

Kliknite sliko za prenos tega nabora podatkov

Potrebujete ta nabor podatkov? Kliknite zgornjo sliko, da jo prenesete.



Najprej pripravimo podatke za analizo. Da bi to naredili, bi morali odstraniti vse vrednosti NA, ki bi lahko bile prisotne v podatkih, in podatke pretvoriti v matriko.

> zločin0 zločin str (zločin) številka [1:50, 1: 4] 13,2 10 8,1 8,8 9 7,9 3,3 5,9 15,4 17,4 ... - attr (*, 'dimnames') = Seznam 2 .. $: chr [1 : 50] 'Alabama' 'Aljaska' 'Arizona' 'Arkansas' ... .. $: chr [1: 4] 'Murder' 'Assault' 'UrbanPop' 'Rape'

Število gruč vzamemo za 5. Funkcija Kmeans () zajema vhodne podatke in število grozdov, v katerih naj bi bili podatki zbrani. Sintaksa je: k pomeni (podatki, k), kjer je k število središč gruč.

> razred cl (cl) [1] 'kmeans'

Analiza grozdenja:



> str (cl) Seznam 9 $ grozdov: poimenovan int [1:50] 5 3 3 5 3 5 4 5 3 5 ... ..- attr (*, 'imena') = chr [1:50] ' Alabama '' Alaska '' Arizona '' Arkansas '... $ centrov: num [1: 5, 1: 4] 2,95 6,11 12,14 5,59 11,3 ... ..- attr (*,' dimnames ') = Seznam 2 .. .. $: chr [1: 5] '1' '2' '3' '4' ... .. .. $: chr [1: 4] 'Murder' 'Assault' 'UrbanPop' 'Rape '$ totss: num 355808 $ insidess: num [1: 5] 4548 2286 16272 1480 3653 $ tot.withinss: num 28240 $ betweenss: num 327568 $ size: int [1: 5] 10 9 14 10 7 $ iter: int 3 $ ifault: int 0 - attr (*, 'class') = chr 'kmeans'

Funkcija str () daje strukturo kmeans, ki vključuje različne parametre, kot so znotrajss, medss itd itd., Pri analiziranju katerih lahko ugotovite delovanje kmeans.

betweenss: med vsoto kvadratov, tj. podobnost znotraj jate

znotraj vsote: znotraj vsote kvadratov, tj. podobnost med združbami

totwithinss: Vsota vseh notranjosti vseh grozdov, tj.Skupaj podobnost znotraj grozdov

Dober grozd bo imel manjšo vrednost znotraj in večjo vrednost medss, kar je odvisno od števila grozdov 'k', ki so bili izbrani na začetku. Poglejmo, kako lahko najdemo optimalno vrednost 'k'.

Iskanje optimalne vrednosti „k“

Optimalna vrednost 'k' je vrednost, ki nam daje zbrani sklop grozdov z minimalnim popačenjem. Večje je izkrivljanje, slabše bodo nastale grozde.

Popačenje:

Popačenje je mogoče izračunati v smislu 'znotraj' iz vsake skupine. Manjša bo vrednost „znotraj“ določenega grozda, bolj gosto poseljena bo, s čimer bo najmanjše izkrivljanje.

kmeans.wss.k<- function(crime, k){ km = kmeans(crime, k) return (km$tot.withinss) }

Ta funkcija zavzame podatke in vrednost k ter zanje vrne 'km $ totwithinss'. „Km $ totwithinss“ je skupna vsota kvadratov znotraj grozda, s čimer je vključena notranja vrednost vseh 5 ustvarjenih grozdov, tj.vsota (znotraj. Višja kot je vrednost 'km $ dotwithinss', večje bo popačenje.

Pri k = 5 je nosa 24417,02

> kmeans.wss.k (zločin, 5) [1] 24417.02

Povečajmo vrednost k s 5 na 10 in opazujmo razliko.

> kmeans.wss.k (zločin, 10) [1] 11083.04

Vidimo lahko, da se z naraščanjem vrednosti K popačenje zmanjša.

Izločimo lahko različne vrednosti 'km $ totwithinss' in jih narišemo v graf, da najdemo razmerje med popačenjem in vrednostjo k. Naslednja funkcija to počne namesto nas:

> kmeans.dis maxk = 10> dis = kmeans.dis (zločin, maxk)> ploskev (1: maxk, dis, type = 'b', xlab = 'Število grozdov', + ylab = 'Popačenje', + col = 'modra')

Ta Da !!! Tako imamo s seboj slavno krivuljo komolca.

Krivulja komolca:

To je ploskev med 'k', številom gruč in 'totwithinss' (ali popačenjem) za vsako vrednost k. Ko je število grozdov manjše, lahko opazite, da se popačenje postopoma zmanjšuje, toda ko stalno povečujemo vrednost k, stopnja zmanjšanja vrednosti popačenja postane konstantna.

Ta vrednost k, nad katero stopnja popačenja postane konstantna, je optimalna vrednost. Tu je k = 4.

Uporabimo nekaj animacije, da bomo razumeli, kako nam je R dal razvrščene rezultate.

> knjižnica (animacija)> kl<- kmeans.ani(crime, 4)

Kmeansov algoritem združevanja:

Razumejmo algoritem, na katerem deluje združevanje k-pomeni:

Korak 1. Če je k = 4, izberemo 4 naključne točke in domnevamo, da so središče grozdov za ustvarjanje grozdov.

2. korak. Iz prostora zavzamemo naključno podatkovno točko in ugotovimo njeno razdaljo od vseh 4 središč grozdov. Če je podatkovna točka najbližja zelenemu središču grozda, je obarvana zeleno in podobno so vse točke razvrščene med 4 grozde.

3. korak. Zdaj izračunamo težišče vseh zelenih točk in to točko določimo kot središče gruče za to kopico.

Podobno izračunamo centroide za vse 4 obarvane (grozdaste) točke in nove centroide določimo kot središča grozdov.

4. korak. Korak-2 in korak-3 se izvajata iteracijsko, razen če se središča grozdov konvergirajo v točki in se ne premikajo več.

obdelava izjem v shranjeni proceduri oracle


Tako pridemo do združenih središč grozdov.

Vidimo, da so podatki razdeljeni na 4 grozde. Središča grozdov so:

> cl $ centri Murder Assault UrbanPop Rape Texas 4,740741 104,8519 62,96296 16,10 Louisiana 10,907143 219,9286 71,71429 25,95 Južna Karolina 13,375000 284,5000 46,25000 25,05 Nova Mehika 11,040000 298,0000 77,60000 32,68

Grozd-4 z 'Novo Mehiko' kot središčem grozdov ima ogromno stopnjo kriminala tudi z največ prebivalci.

Spremljanje grozda-3 in grozda-2.

Vsaki državi je dodeljena skupina, odvisno od tega, kateri lahko zdaj napovemo njeno uvrstitev glede kriminala. Rezultat je videti tako:

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.

Sorodne objave: