Εφαρμογή σύμπλεξης Κ-μέσων στο σύνολο δεδομένων εγκλήματος



Εφαρμογή της σύμπλεξης Kmeans στο σύνολο δεδομένων εγκλημάτων των ΗΠΑ

Σε αυτό το ιστολόγιο, θα καταλάβετε τι είναι η ομαδοποίηση K-πώς και πώς μπορεί να εφαρμοστεί στα εγκληματικά δεδομένα που συλλέγονται σε διάφορες πολιτείες των ΗΠΑ. Τα δεδομένα περιέχουν εγκλήματα που διαπράχθηκαν όπως: επίθεση, δολοφονία και βιασμός σε συλλήψεις ανά 100.000 κατοίκους σε καθεμία από τις 50 πολιτείες των ΗΠΑ το 1973. Μαζί με την ανάλυση των δεδομένων θα μάθετε επίσης:

    • Εύρεση του βέλτιστου αριθμού συστάδων.
    • Ελαχιστοποίηση της παραμόρφωσης
    • Δημιουργία και ανάλυση της καμπύλης αγκώνα.
  • Κατανόηση του μηχανισμού του αλγόριθμου k-means.

Ας ξεκινήσουμε με την ανάλυση. Τα δεδομένα μοιάζουν με:





πώς να χρησιμοποιήσετε την πλατφόρμα cloud Google
dataset

Κάντε κλικ στην εικόνα για να κατεβάσετε αυτό το σύνολο δεδομένων

Χρειάζεστε αυτό το σύνολο δεδομένων; Κάντε κλικ στην παραπάνω εικόνα για να την κατεβάσετε.



Πρώτα ας προετοιμάσουμε τα δεδομένα για την ανάλυση. Για να γίνει αυτό, πρέπει να καταργήσουμε τυχόν τιμές NA που ενδέχεται να υπάρχουν στα δεδομένα και να μετατρέψουμε τα δεδομένα σε μια μήτρα.

> έγκλημα0 έγκλημα str (έγκλημα) αριθμός [1:50, 1: 4] 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ... - attr (*, 'dimnames') = Λίστα 2 .. $: chr [1 : 50] 'Αλαμπάμα' Αλάσκα 'Αριζόνα' Αρκάνσας '... $: chr [1: 4]' Δολοφονία '' Επίθεση '' UrbanPop '' Βιασμός '

Ας πάρουμε τον αριθμό των συμπλεγμάτων να είναι 5. Η συνάρτηση Kmeans () παίρνει τα δεδομένα εισόδου και τον αριθμό των συστάδων στις οποίες πρόκειται να συγκεντρωθούν τα δεδομένα. Η σύνταξη είναι: kmeans (δεδομένα, k) όπου k είναι ο αριθμός των κέντρων συμπλέγματος.

> κλάση cl (cl) [1] «kmeans»

Ανάλυση της ομαδοποίησης:



> str (cl) Λίστα συμπλέγματος 9 $: Ονομαζόμενο int [1:50] 5 3 3 5 3 5 4 5 3 5 ... ..- attr (*, 'names') = chr [1:50] ' Αλαμπάμα 'Αλάσκα' Αριζόνα 'Αρκάνσας' ... $ κέντρα: num [1: 5, 1: 4] 2.95 6.11 12.14 5.59 11.3 ... ..- attr (*, 'dimnames') = Λίστα 2 .. .. $: chr [1: 5] '1' '2' '3' '4' ... .. .. $: chr [1: 4] 'Δολοφονία' 'Επίθεση' 'UrbanPop' 'Βιασμός '$ 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'

Η συνάρτηση str () δίνει τη δομή των kmeans που περιλαμβάνει διάφορες παραμέτρους όπως ininss, betweenss κ.λπ., αναλύοντας τις οποίες μπορείτε να μάθετε την απόδοση των kmeans.

betweenss: Μεταξύ του αθροίσματος των τετραγώνων, δηλ. ομοιότητα Intracluster

withinss: Εντός του αθροίσματος του τετραγώνου, δηλαδή ομοιότητα Intercluster

totwithinss: Άθροισμα όλων των ininss όλων των συστάδων, δηλαδή. Ολική ομοιότητα εντός του συμπλέγματος

Ένα καλό σύμπλεγμα, θα έχει χαμηλότερη τιμή ininss και υψηλότερη αξία betweenss που εξαρτάται από τον αριθμό των συστάδων «k» που επιλέχθηκαν αρχικά. Ας δούμε πώς μπορούμε να βρούμε τη βέλτιστη τιμή του «k».

Εύρεση της βέλτιστης τιμής του «k»

Μια βέλτιστη τιμή του «k» είναι η τιμή που μας δίνει ένα συγκλίνον σύνολο συστάδων με ελάχιστη παραμόρφωση. Όσο μεγαλύτερη είναι η παραμόρφωση, τόσο χειρότερα θα σχηματιστούν οι συστάδες.

Παραμόρφωση:

Η παραμόρφωση μπορεί να υπολογιστεί με την έννοια του 'withinss' από καθεμία από τις συστάδες. Όσο μικρότερη είναι η τιμή του «withinss» ενός συγκεκριμένου συμπλέγματος, τόσο πιο πυκνοκατοικημένη θα είναι, επομένως ελάχιστη παραμόρφωση.

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

Αυτή η συνάρτηση καταλαμβάνει τα δεδομένα και την τιμή του k και επιστρέφει το 'km $ totwithinss' για αυτό. «Km $ totwithinss» είναι το συνολικό άθροισμα των τετραγώνων εντός του συμπλέγματος, συμπεριλαμβανομένων των ininss και των 5 ομάδων που δημιουργήθηκαν, δηλαδήάθροισμα (withinss). Όσο υψηλότερη είναι η τιμή του 'km $ totwithinss', τόσο μεγαλύτερη θα είναι η παραμόρφωση.

Για k = 5, το withinss είναι 24417.02

> kmeans.wss.k (έγκλημα, 5) [1] 24417.02

Ας αυξήσουμε την τιμή του k από 5 σε 10 και ας παρατηρήσουμε τη διαφορά.

> kmeans.wss.k (έγκλημα, 10) [1] 11083.04

Μπορεί να φανεί ότι καθώς αυξάνεται η τιμή του Κ, μειώνεται η παραμόρφωση.

Μπορούμε να βγάλουμε τις διαφορετικές τιμές του 'km $ totwithinss' και να τις σχεδιάσουμε σε ένα γράφημα για να βρούμε τη σχέση μεταξύ της παραμόρφωσης και της τιμής του k. Η παρακάτω συνάρτηση το κάνει για εμάς:

> kmeans.dis maxk = 10> dis = kmeans.dis (έγκλημα, maxk)> plot (1: maxk, dis, type = 'b', xlab = 'Number of Clusters', + ylab = 'Distortion', + col = 'μπλε')

Τα Ντα !!! Έτσι έχουμε μαζί μας τη διάσημη καμπύλη αγκώνα.

Καμπύλη αγκώνα:

Αυτή είναι η γραφική παράσταση μεταξύ «k», του αριθμού των συστάδων και των «totwithinss» (ή παραμόρφωση) για κάθε τιμή του k. Μπορείτε να δείτε όταν ο αριθμός των συστάδων είναι μικρότερος, υπάρχει μια σταδιακή μείωση της παραμόρφωσης, αλλά καθώς συνεχίζουμε να αυξάνουμε την τιμή του k, ο ρυθμός μείωσης των τιμών παραμόρφωσης γίνεται σταθερός.

Αυτή η τιμή του k πέρα ​​από την οποία ο ρυθμός παραμόρφωσης γίνεται σταθερός είναι η βέλτιστη τιμή. Εδώ k = 4.

Ας εφαρμόσουμε κάποια κινούμενα σχέδια για να καταλάβουμε πώς μας έδωσε η R τα συγκεντρωτικά αποτελέσματα.

> βιβλιοθήκη (κινούμενα σχέδια)> cl<- kmeans.ani(crime, 4)

Αλγόριθμος συμπλέγματος Kmeans:

Ας καταλάβουμε τον αλγόριθμο στον οποίο λειτουργεί η ομαδοποίηση k-σημαίνει:

Βήμα 1. Εάν k = 4, επιλέγουμε 4 τυχαία σημεία και υποθέτουμε ότι είναι κέντρα συμπλέγματος για τη δημιουργία συστάδων.

Βήμα 2. Παίρνουμε ένα τυχαίο σημείο δεδομένων από το διάστημα και ανακαλύπτουμε την απόστασή του και από τα 4 κέντρα συστάδων. Εάν το σημείο δεδομένων είναι πλησιέστερα στο κέντρο του πράσινου συμπλέγματος, είναι χρωματισμένο πράσινο και ομοίως όλα τα σημεία κατηγοριοποιούνται μεταξύ των 4 ομάδων.

Βήμα # 3. Τώρα υπολογίζουμε το κεντροειδές όλων των πράσινων σημείων και αντιστοιχίζουμε αυτό το σημείο ως κέντρο συμπλέγματος για αυτό το σύμπλεγμα.

Παρομοίως, υπολογίζουμε τα κεντροειδή για όλα τα 4 χρωματιστά σημεία (ομαδοποιημένα) και εκχωρούμε τα νέα κεντροειδή ως κέντρα συμπλέγματος.

Βήμα # 4. Τα βήματα-2 και βήματα-3 εκτελούνται επαναληπτικά, εκτός εάν τα κέντρα συμπλέγματος συγκλίνουν σε ένα σημείο και δεν μετακινούνται πλέον.


Έτσι, φτάνουμε στα κέντρα συγκλίνουσας συστάδας.

Μπορεί να φανεί ότι τα δεδομένα χωρίζονται σε 4 ομάδες. Τα κέντρα συμπλέγματος είναι:

> cl $ center Murder Assault UrbanPop Rape Texas 4.740741 104.8519 62.96296 16.10 Louisiana 10.907143 219.9286 71.71429 25.95 Νότια Καρολίνα 13.375000 284.5000 46.25000 25.05 Νέο Μεξικό 11.040000 298.0000 77.60000 32.68

Το σύμπλεγμα 4 με το «Νέο Μεξικό» ως κέντρο συμπλέγματος έχει ένα τεράστιο ποσοστό εγκληματικότητας με τον υψηλότερο πληθυσμό επίσης.

Παρακολούθηση Cluster-3 και Cluster-2.

Σε κάθε πολιτεία εκχωρείται ένα σύμπλεγμα, ανάλογα με το οποίο μπορούμε τώρα να προβλέψουμε την κατάταξη του εγκλήματος. Η έξοδος μοιάζει με:

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.

Σχετικές αναρτήσεις: