A K-kód végrehajtása azt jelenti, hogy a bűncselekmény-adatkészleten fürtözni kell



Kmeans klaszter bevezetése az amerikai bűnügyi adatkészleten

Ebben a blogban meg fogja érteni, mi az a K-csoportosulás, és hogyan lehet megvalósítani az Egyesült Államok különböző államaiban gyűjtött bűnügyi adatokon. Az adatok olyan bűncselekményeket tartalmaznak, mint: bántalmazás, gyilkosság és nemi erőszak letartóztatásonként 100 000 lakosra számítva az Egyesült Államok 50 államában, 1973-ban. Az adatok elemzésével együtt megtudhatja:

    • A klaszterek optimális számának megtalálása.
    • A torzítás minimalizálása
    • A könyökgörbe létrehozása és elemzése.
  • A k-átlag algoritmus mechanizmusának megértése.

Kezdjük az elemzéssel. Az adatok a következőképpen néznek ki:





dataset

Az adatkészlet letöltéséhez kattintson a képre

Szüksége van erre az adatkészletre? A letöltéshez kattintson a fenti képre.



Először készítsük elő az adatokat az elemzéshez. Ehhez el kell távolítanunk az adatokban esetlegesen jelen lévő NA értékeket, és az adatokat mátrixsá kell konvertálnunk.

> bűn0 bűncselekmény str (bűncselekmény) szám [1:50, 1: 4] 13,2 10 8,1 8,8 9 7,9 3,3 5,9 15,4 17,4 ... - attr (*, 'félnevek') = 2 .. lista: $: chr [1 : 50] 'Alabama' 'Alaska' 'Arizona' 'Arkansas' ... .. $: chr [1: 4] 'Gyilkosság' Támadás '' UrbanPop '' Nemi erőszak '

Vegyük a klaszterek számát 5-re. A Kmeans () függvény a bemeneti adatokat és a klaszterek számát veszi figyelembe. A szintaxis: kmeans (adatok, k), ahol k a klaszterközpontok száma.

> cl osztály (cl) [1] 'kmeans'

A klaszter elemzése:



> str (cl) A 9 $ klaszter listája: Int névvel [1:50] 5 3 3 5 3 5 4 5 3 5 ... ..- attr (*, 'nevek') = chr [1:50] ' Alabama '' Alaska '' Arizona '' Arkansas '... $ központok: num [1: 5, 1: 4] 2.95 6.11 12.14 5.59 11.3 ... ..- attr (*,' dimnames ') = 2-es lista .. .. $: chr [1: 5] '1' '2' '3' '4' ... .. .. $: chr [1: 4] 'Gyilkosság' 'Támadás' 'UrbanPop' 'Nemi erőszak '$ totss: num 355808 $ withinss: 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'

Az str () függvény megadja a kmeanok szerkezetét, amely különféle paramétereket tartalmaz, például withinss, betweenss stb., Elemzésével megtudhatja a kmeans teljesítményét.

Betweenss: A négyzetek összege, azaz az intracluster hasonlósága között

withinss: A négyzet összességén belül, azaz Intercluster hasonlóság

totwithinss: Az összes klaszter összes ininsének összege, azaz a teljes klaszteren belüli hasonlóság

A jó klaszterezésnél alacsonyabb ainsins érték és magasabb a betweens érték, amely az eredetileg kiválasztott „k” klaszterek számától függ. Lássuk, hogyan találhatjuk meg a „k” optimális értékét.

A „k” optimális értékének megtalálása

A „k” optimális értéke az az érték, amely konvergált klaszterhalmazt ad minimális torzítással. Nagyobb a torzítás, annál rosszabbak lesznek a kialakuló klaszterek.

Torzítás:

A torzítás kiszámítható az egyes klaszterek „withinss” -jében. Kisebb az adott klaszter „withinss” értéke, sűrűbben lakott lesz, ezáltal minimális torzítás.

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

Ez a függvény felveszi az adatokat és a k értékét, és visszaadja érte a „km $ totwithinss” értéket. A „km $ totwithinss” a teljes fürtön belüli négyzetek összege, amely magában foglalja mind az 5 létrehozott fürt együttesét, azazösszeg (withinss). Minél magasabb a „km $ totwithinss” értéke, annál nagyobb lesz a torzítás.

K = 5 esetén a ininss értéke 24417,02

> kmeans.wss.k (krimi, 5) [1] 24417,02

Növeljük a k értékét 5-ről 10-re, és figyeljük meg a különbséget.

> kmeans.wss.k (krimi, 10) [1] 11083,04

Látható, hogy a K értékének növekedésével a torzítás csökken.

Kihúzhatjuk a „km $ totwithinss” különböző értékeit, és grafikonon ábrázolhatjuk őket, hogy megtaláljuk a torzítás és a k értéke közötti kapcsolatot. A következő funkció teszi ezt nekünk:

> kmeans.dis maxk = 10> dis = kmeans.dis (krimi, maxk)> plot (1: maxk, dis, type = 'b', xlab = 'Fürtök száma', + ylab = 'Torzítás', + col = 'kék')

Ta Da !!! Így nálunk van a híres könyökgörbe.

Könyökgörbe:

Ez a 'k', a klaszterek száma és a 'totwithinss' (vagy torzítás) közötti diagram minden k értékre. Láthatja, amikor a klaszterek száma kevesebb, a torzítás fokozatosan csökken, de miközben folyamatosan növeljük a k értékét, a torzítási értékek csökkenésének sebessége állandóvá válik.

Ez a k értéke, amelyen túl a torzítási sebesség állandóvá válik, az optimális érték. Itt k = 4.

hogyan kell használni a Google felhő platformját

Alkalmazzunk néhány animációt annak megértéséhez, hogy R hogyan adta meg nekünk a csoportosított eredményeket.

> könyvtár (animáció)> cl<- kmeans.ani(crime, 4)

Kmeans fürtözési algoritmus:

Értsük meg azt az algoritmust, amelyen a k-jelentésű fürtözés működik:

1. lépés. Ha k = 4, akkor 4 véletlen pontot választunk ki, és feltételezzük, hogy azok a létrehozandó klaszterek klaszterközpontjai.

2. lépés. Veszünk egy véletlenszerű adatpontot az űrből, és megtudjuk annak távolságát mind a 4 klaszterközponttól. Ha az adatpont a legközelebb van a zöld fürtközponthoz, akkor zöld színű, és hasonlóképpen az összes pontot a 4 klaszter közé soroljuk.

3. lépés. Most kiszámoljuk az összes zöld pont centroidját, és ezt a pontot rendeljük hozzá annak a fürtnek a fürtközpontjává.

Hasonlóképpen kiszámítjuk a centrideket mind a 4 színes (fürtös) ponthoz, és az új centrideket rendeljük klaszterközpontokká.

4. lépés. A 2. és a 3. lépést iteratív módon futtatják, kivéve, ha a fürtközpontok egy pontban összefognak és már nem mozognak.


Így elérjük a konvergált klaszterközpontokat.

Látható, hogy az adatok 4 klaszterre vannak felosztva. A klaszter központok:

> cl $ központok Murder Assault UrbanPop Rape Texas 4.740741 104.8519 62.96296 16.10 Louisiana 10.907143 219.9286 71.71429 25.95 South Carolina 13.375000 284.5000 46.25000 25.05 New Mexico 11.040000 298.0000 77.60000 32.68

A 4. klaszter „Új-Mexikóval”, mint a klaszterközpont óriási bűnözéssel rendelkezik a legmagasabb népesség mellett is.

A Cluster-3 és a Cluster-2 nyomon követése.

Minden államhoz van hozzárendelve egy klaszter, attól függően, hogy most megjósolhatjuk-e bűncselekményeinek rangsorát. A kimenet a következőképpen néz ki:

Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.

Kapcsolódó hozzászólások:

fibonacci sorozat c ++ -ban