data("USArrests")
summary(USArrests)
##      Murder          Assault         UrbanPop          Rape      
##  Min.   : 0.800   Min.   : 45.0   Min.   :32.00   Min.   : 7.30  
##  1st Qu.: 4.075   1st Qu.:109.0   1st Qu.:54.50   1st Qu.:15.07  
##  Median : 7.250   Median :159.0   Median :66.00   Median :20.10  
##  Mean   : 7.788   Mean   :170.8   Mean   :65.54   Mean   :21.23  
##  3rd Qu.:11.250   3rd Qu.:249.0   3rd Qu.:77.75   3rd Qu.:26.18  
##  Max.   :17.400   Max.   :337.0   Max.   :91.00   Max.   :46.00

Agregar el CustomerID como nombre de los renglones

bd13 <- bd12

rownames (bd13)<- bd13$CustomerID

Eliminar la columna de customer ID

bd14 <- bd13

bd14 <- subset (bd14, select = -c (customerID))

Revisar presencia de datos anormales

boxplot(USArrests)

## Se determinó que hay datos anormales en Rape (Fuera del Límite Superior), pero no se eliminarán al ser muy cercanos a los demás datos.

k-means Clustering

Paso 1: Normalizar Variables

bd1 <- USArrests
bd1 <- as.data.frame(scale(USArrests))

Paso 2: K means clustering

segmentos <- kmeans(bd1, 4)

asignacion <- cbind(USArrests, Cluster=segmentos$cluster)
head(asignacion,10)
##             Murder Assault UrbanPop Rape Cluster
## Alabama       13.2     236       58 21.2       1
## Alaska        10.0     263       48 44.5       1
## Arizona        8.1     294       80 31.0       1
## Arkansas       8.8     190       50 19.5       3
## California     9.0     276       91 40.6       1
## Colorado       7.9     204       78 38.7       1
## Connecticut    3.3     110       77 11.1       4
## Delaware       5.9     238       72 15.8       3
## Florida       15.4     335       80 31.9       1
## Georgia       17.4     211       60 25.8       1

Exportar CSV

write.csv(asignacion, "datos_con_cluster.csv")

Visualizar segmentos

library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(segmentos, data = bd1,
            palette=c("red", "blue", "black", "darkgreen"),
            ellipse.type = "euclid",
            star.plot = T,
           repel = T,
            ggtheme = theme())

km.res <- kmeans(USArrests, 4)

Conclusión

Dentro de este análsis se trabajó en segmentar la base de datos par aobtener información y clasificarla. Se obtuvieron tres clusters en donde se pueden identificar los arrestos por lugares en estados unidos.