K ieviešana nozīmē noziedzības datu kopas kopu izveidi



ASV noziedzības datu kopas Kmeans kopu ieviešana

Šajā emuārā jūs sapratīsit, kas ir K-veida kopu veidošana un kā to var ieviest uz kriminālajiem datiem, kas savākti dažādos ASV štatos. Dati satur noziegumus, kas izdarīti, piemēram: uzbrukums, slepkavība un izvarošana arestos uz 100 000 iedzīvotājiem katrā no 50 ASV štatiem 1973. gadā. Papildus datu analīzei uzzināsiet arī:

    • Optimālā kopu skaita atrašana.
    • Izkropļojumu samazināšana līdz minimumam
    • Elkoņa līknes izveidošana un analīze.
  • Izprot k-vidējā algoritma mehānismu.

Sāksim ar analīzi. Dati izskatās šādi:





dataset

Noklikšķiniet uz attēla, lai lejupielādētu šo datu kopu

Vai jums ir nepieciešama šī datu kopa? Noklikšķiniet uz iepriekš redzamā attēla, lai to lejupielādētu.



Vispirms sagatavosim datus analīzei. Lai to izdarītu, mums ir jānoņem visas NA vērtības, kas varētu būt datos, un dati jāpārvērš matricā.

> noziegums0 noziegums str (noziegums) num [1:50, 1: 4] 13,2 10 8,1 8,8 9 7,9 3,3 5,9 15,4 17,4 ... - attr (*, 'dimnames') = Saraksts ar 2 .. $: chr [1 : 50] 'Alabama' 'Aļaska' 'Arizona' 'Arkanzasa' ... .. $: chr [1: 4] 'Slepkavība' Uzbrukums '' UrbanPop '' Izvarošana ''

Pieņemsim, ka kopu skaits būs 5. Funkcija Kmeans () ņem ievaddatus un kopu skaitu, kurās dati ir jāklasificē. Sintakse ir: kmeans (dati, k), kur k ir kopu centru skaits.

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

Klasteru analīze:



> str (cl) 9 $ kopas saraksts: nosaukts int [1:50] 5 3 3 5 3 5 4 5 3 5 ... ..- attr (*, 'vārdi') = chr [1:50] ' Alabama '' Alaska '' Arizona '' Arkansas '... $ centri: num [1: 5, 1: 4] 2,95 6,11 12,14 5,59 11,3 ... ..- attr (*,' dimnames ') = 2 saraksts .. .. $: chr [1: 5] '1' '2' '3' '4' ... .. .. $: chr [1: 4] 'Slepkavība' 'Uzbrukums' 'UrbanPop' 'Izvarošana '$ totss: num 355808 $ withinss: num [1: 5] 4548 2286 16272 1480 3653 $ tot.withinss: num 28240 $ betweenss: num 327568 $ izmērs: int [1: 5] 10 9 14 10 7 $ iter: int 3 $, ja noklusējums: int 0 - attr (*, 'class') = chr 'kmeans'

Funkcija str () dod kmeans struktūru, kas ietver dažādus parametrus, piemēram, withinss, betweenss utt., Analizējot, kuru varat uzzināt kmeans veiktspēju.

Betweenss: Starp kvadrātu summu, t.i., Intracluster līdzība

withinss: Kvadrāta summas ietvaros, t.i., starpklustu līdzība

totwithinss: visu klasteru visu savainojumu summa, t.i., kopējā klastera iekšējā līdzība

Labam klasterizācijai būs zemāka vīnogu vērtība un augstāka bikvensa vērtība, kas ir atkarīga no sākotnēji izvēlēto kopu ‘k’ skaita. Apskatīsim, kā mēs varam atrast optimālo ‘k’ vērtību.

“K” optimālās vērtības atrašana

Optimālā “k” vērtība ir vērtība, kas dod mums saplūstošu kopu kopu ar minimāliem traucējumiem. Lielāks izkropļojums, sliktāki būs izveidojušās kopas.

Kropļojums:

Izkropļojumu var aprēķināt kā “arinsinu” no katras kopas. Mazāka noteiktas kopas ‘withinss’ vērtība, jo tā būs blīvāk apdzīvota, tādējādi minimāli deformējot.

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

Šī funkcija uzņem datus un k vērtību un par to atgriež ‘km $ totwithinss’. ‘Km $ totwithinss’ ir kopējā kvadrātu summa klastera iekšienē, tādējādi iekļaujot visu izveidoto 5 kopu withinss, t.i.summa (withinss). Jo lielāka ir “km $ totwithinss” vērtība, jo lielāks būs izkropļojums.

Ja k = 5, withinss ir 24417,02

> kmeans.wss.k (noziegums, 5) [1] 24417.02

Palielināsim k vērtību no 5 līdz 10 un novērosim atšķirību.

> kmeans.wss.k (noziegums, 10) [1] 11083.04

Var redzēt, ka, palielinoties K vērtībai, deformācija samazinās.

Mēs varam izņemt dažādas ‘km $ totwithinss’ vērtības un uzzīmēt tās diagrammā, lai atrastu sakarību starp deformāciju un k vērtību. Šī funkcija mums to dara:

> kmeans.dis maxk = 10> dis = kmeans.dis (noziedzība, maxk)> sižets (1: maxk, dis, type = 'b', xlab = 'Klasteru skaits', + ylab = 'Izkropļojums', + kol = 'zils')

Ta Da !!! Tādējādi mums ir slavenā elkoņa līkne.

Elkoņa līkne:

Tas ir grafiks starp ‘k’, kopu skaitu un ‘totwithinss’ (vai deformāciju) katrai k vērtībai. Jūs varat redzēt, kad kopu skaits ir mazāks, pakāpeniski samazinās deformācijas, bet, turpinot palielināt k vērtību, deformācijas vērtību samazināšanās ātrums kļūst nemainīgs.

Šī k vērtība, virs kuras deformācijas ātrums kļūst nemainīgs, ir optimālā vērtība. Šeit k = 4.

Pielietosim kādu animāciju, lai saprastu, kā R mums deva sakopotos rezultātus.

> bibliotēka (animācija)> kl<- kmeans.ani(crime, 4)

Kmeans klasterizācijas algoritms:

Ļaujiet mums saprast algoritmu, uz kura darbojas k-grupas klasterošana:

1. solis. Ja k = 4, mēs atlasām 4 nejaušus punktus un pieņemam, ka tie ir izveidojamo kopu kopu centri.

2. solis. Mēs no kosmosa paņemam nejaušu datu punktu un uzzinām tā attālumu no visiem 4 kopu centriem. Ja datu punkts atrodas vistuvāk zaļajam kopas centram, tas ir zaļā krāsā un līdzīgi visi punkti tiek iedalīti 4 kopās.

3. solis. Tagad mēs aprēķinām visu zaļo punktu centroidu un piešķiram šo punktu kā klastera centru šai kopai.

Līdzīgi mēs aprēķinām visu 4 krāsaino (kopu) punktu centraīdus un piešķiram jaunos centraīdus kā kopu centrus.

4. solis. 2. un 3. solis tiek palaisti iteratīvi, ja vien kopas centri vienā punktā nesaplūst un vairs nepārvietojas.


Tādējādi mēs sasniedzam saplūstošos kopu centrus.

kā padarīt jframe java

Var redzēt, ka dati ir sadalīti 4 kopās. Klastera centri ir:

> cl $ centri Murder Assault UrbanPop Rape Texas 4.740741 104.8519 62.96296 16.10 Louisiana 10.907143 219.9286 71.71429 25.95 Dienvidkarolīna 13.375000 284.5000 46.25000 25.05 Ņūmeksika 11.040000 298.0000 77.60000 32.68

Cluster-4 ar ‘New Mexico’ kā klasteru centru ir arī milzīgs noziedzības līmenis ar vislielāko iedzīvotāju skaitu.

Cluster-3 un Cluster-2 turpinājums.

Katrai valstij tiek piešķirts kopu, atkarībā no tā, kā mēs tagad varam prognozēt tās noziedzības rangu. Rezultāts izskatās šādi:

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.

Saistītās ziņas: