bd <- read.csv("/Users/ivannagarza/Downloads/USArrests.csv")bd1<- bd
rownames(bd1) <- bd1$Xbd2<-bd1
bd2 <- subset (bd2, select = -c (X))summary(bd2)## 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
boxplot(USArrests)Normalizar variables
bd3<-bd2
bd3 <- as.data.frame(scale(bd3))k-means clustering
segmentos <- kmeans(bd3, 4)
segmentos## K-means clustering with 4 clusters of sizes 16, 13, 13, 8
##
## Cluster means:
## Murder Assault UrbanPop Rape
## 1 -0.4894375 -0.3826001 0.5758298 -0.26165379
## 2 0.6950701 1.0394414 0.7226370 1.27693964
## 3 -0.9615407 -1.1066010 -0.9301069 -0.96676331
## 4 1.4118898 0.8743346 -0.8145211 0.01927104
##
## Clustering vector:
## Alabama Alaska Arizona Arkansas California
## 4 2 2 4 2
## Colorado Connecticut Delaware Florida Georgia
## 2 1 1 2 4
## Hawaii Idaho Illinois Indiana Iowa
## 1 3 2 1 3
## Kansas Kentucky Louisiana Maine Maryland
## 1 3 4 3 2
## Massachusetts Michigan Minnesota Mississippi Missouri
## 1 2 3 4 2
## Montana Nebraska Nevada New Hampshire New Jersey
## 3 3 2 3 1
## New Mexico New York North Carolina North Dakota Ohio
## 2 2 4 3 1
## Oklahoma Oregon Pennsylvania Rhode Island South Carolina
## 1 1 1 1 4
## South Dakota Tennessee Texas Utah Vermont
## 3 4 2 1 3
## Virginia Washington West Virginia Wisconsin Wyoming
## 1 1 3 3 1
##
## Within cluster sum of squares by cluster:
## [1] 16.212213 19.922437 11.952463 8.316061
## (between_SS / total_SS = 71.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
asignacion <- cbind(USArrests, cluster = segmentos$cluster)
head(asignacion,10)## Murder Assault UrbanPop Rape cluster
## Alabama 13.2 236 58 21.2 4
## Alaska 10.0 263 48 44.5 2
## Arizona 8.1 294 80 31.0 2
## Arkansas 8.8 190 50 19.5 4
## California 9.0 276 91 40.6 2
## Colorado 7.9 204 78 38.7 2
## Connecticut 3.3 110 77 11.1 1
## Delaware 5.9 238 72 15.8 1
## Florida 15.4 335 80 31.9 2
## Georgia 17.4 211 60 25.8 4
write.csv(asignacion,"USArrestsClusters")# install.packages("factoextra")
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 = bd3,
palette=c("red", "blue", "black", "darkgreen"),
ellipse.type = "euclid",
star.plot = T,
repel = T,
ggtheme = theme())Se debe de insertar una libreria para cluster y para data.table, asimismo un paquete de data.table, sin embargo no se incluyo en el apartado R debido a que marcaba error para publicar.
El código que se puede observar a continuación, se visualiza como texto debido a que al momento de correr la funcion clusGap viene que no esta disponible para la versión de R que tengo. Sin embargo, a continuación se inserta la tabla que da de resultado el código siguiente;
set.seed(123) optimizacion <- clusGap(bd3, FUN = kmeans, nstart = 25, K.max = 10, B = 50) plot(optimizacion, xlab = “Numero de clusters k”) .
Realizar esta programación con R fue con el propósito de visualmente identificar los datos segmentados. Para poder realizar este programa de manera efectiva, hubieron muchos Warnings en el proceso, debido a la falta de la instalación de diversos paquetes y librerias tales como data.table, y factoextra. Una vez que se instalaron, se pudo representar visualmente los segmentos identificados en el paso 2 de la creación de los clusters, “k-means clustering”.
Hubo un detalle al momento de visualizar el plot de los segmentos, debido a que a comparación de la programación del profesor y mis compañeros, mi visualización se diferenciaba en el color de los circulos, sin embargo, no fue de mucha importancia debido a que la información que estos contenían era igual.
R Studio es una aplicación de programación que en lo personal disfruto mucho debido a la sencillez de identificar los errores, como en mi caso fue la falta de instalación de los paquetes anteriormente mencionados.