
Contexto
La segmentación
Mas información: R for Data Science
(2ed)
Paso 1 cargar liberías
#install.packages("cluster")
library(cluster)
#install.packages("ggplot2")
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
#install.packages("data.table")
library(data.table)
## Warning: package 'data.table' was built under R version 4.3.2
#install.packages("factoextra")
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Paso 2 Crear data frame
df <- data.frame(x=c(2,2,8,5,7,6,1,4), y=c(10,5,4,8,5,4,2,9))
Paso 3 Cantidad de grupos
grupos <- 4
Paso 4 Clustering
segmentos <- kmeans(df,grupos)
segmentos
## K-means clustering with 4 clusters of sizes 1, 2, 2, 3
##
## Cluster means:
## x y
## 1 2.0 10.000000
## 2 1.5 3.500000
## 3 4.5 8.500000
## 4 7.0 4.333333
##
## Clustering vector:
## [1] 1 2 4 3 4 4 2 3
##
## Within cluster sum of squares by cluster:
## [1] 0.000000 5.000000 1.000000 2.666667
## (between_SS / total_SS = 91.4 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Paso 5. Asignar el grupo al que pertenece cada obersvación
asig <- cbind(df, cluster = segmentos$cluster)
asig
## x y cluster
## 1 2 10 1
## 2 2 5 2
## 3 8 4 4
## 4 5 8 3
## 5 7 5 4
## 6 6 4 4
## 7 1 2 2
## 8 4 9 3
Paso 6 graficar clusters
fviz_cluster(segmentos, data = df)

Paso 7 optimizar la cantidad de grupos
La cantidad óptmia de grupos corresponde al punto más alto de la
siguiente grafica
set.seed(123)
opt <- clusGap(df, FUN = kmeans, nstart=1, K.max=7)
plot(opt, xlab="Numero de clusters k")

Conclusión
La segmentación o clusters es un algoritmo útil para las empresas que
desean clasificar a sus clientes y dirigir campañas de marketing más
enfocadas y especializadas. Más información: R for Data Science (2ed)
LS0tCnRpdGxlOiAiU2VnbWVudGFjacOzbiBFamVyY2ljaW8gQ2xhc2UiCmF1dGhvcjogIkdpbGJlcnRvIE1lbmNoYWNhIEEwMTE3Nzg5OSIKZGF0ZTogIjIwMjQtMDItMTkiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICAKLS0tCiFbXSgvVXNlcnMvbGlnaHRlZGl0L0RvY3VtZW50cy9URUMgU0VNRVNUUkUgNi4xL00yL1IvMF9qdzVSQ0VxdDlCSzRxTG1uLmpwZykKCiMgQ29udGV4dG8KTGEgKipzZWdtZW50YWNpw7NuKiogIAoKTWFzIGluZm9ybWFjacOzbjoKW1IgZm9yIERhdGEgU2NpZW5jZSAoMmVkKV0oaHR0cHM6Ly9yNGRzLmhhZC5jby5uei8pCgoKIyBQYXNvIDEgY2FyZ2FyIGxpYmVyw61hcwpgYGB7cn0KCiNpbnN0YWxsLnBhY2thZ2VzKCJjbHVzdGVyIikKbGlicmFyeShjbHVzdGVyKQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpCmxpYnJhcnkoZ2dwbG90MikKCiNpbnN0YWxsLnBhY2thZ2VzKCJkYXRhLnRhYmxlIikKbGlicmFyeShkYXRhLnRhYmxlKQoKI2luc3RhbGwucGFja2FnZXMoImZhY3RvZXh0cmEiKQpsaWJyYXJ5KGZhY3RvZXh0cmEpCgoKYGBgCgoKIyBQYXNvIDIgQ3JlYXIgZGF0YSBmcmFtZQoKYGBge3J9CgpkZiA8LSBkYXRhLmZyYW1lKHg9YygyLDIsOCw1LDcsNiwxLDQpLCB5PWMoMTAsNSw0LDgsNSw0LDIsOSkpCgpgYGAKCiMgUGFzbyAzIENhbnRpZGFkIGRlIGdydXBvcwoKYGBge3J9CmdydXBvcyAgPC0gNAoKYGBgCiMgUGFzbyA0IENsdXN0ZXJpbmcgCgpgYGB7cn0Kc2VnbWVudG9zIDwtIGttZWFucyhkZixncnVwb3MpCnNlZ21lbnRvcwpgYGAKCgojIFBhc28gNS4gQXNpZ25hciBlbCBncnVwbyBhbCBxdWUgcGVydGVuZWNlIGNhZGEgb2JlcnN2YWNpw7NuCgpgYGB7cn0KYXNpZyA8LSBjYmluZChkZiwgY2x1c3RlciA9IHNlZ21lbnRvcyRjbHVzdGVyKQphc2lnCmBgYAoKCiMgUGFzbyA2IGdyYWZpY2FyIGNsdXN0ZXJzCgpgYGB7cn0KZnZpel9jbHVzdGVyKHNlZ21lbnRvcywgZGF0YSA9IGRmKQoKYGBgCgojIFBhc28gNyBvcHRpbWl6YXIgbGEgY2FudGlkYWQgZGUgZ3J1cG9zCkxhIGNhbnRpZGFkIMOzcHRtaWEgZGUgZ3J1cG9zIGNvcnJlc3BvbmRlIGFsIHB1bnRvIG3DoXMgYWx0byBkZSBsYSBzaWd1aWVudGUgZ3JhZmljYQoKYGBge3J9CnNldC5zZWVkKDEyMykKb3B0IDwtIGNsdXNHYXAoZGYsIEZVTiA9IGttZWFucywgbnN0YXJ0PTEsIEsubWF4PTcpCnBsb3Qob3B0LCB4bGFiPSJOdW1lcm8gZGUgY2x1c3RlcnMgayIpCmBgYAoKIyBDb25jbHVzacOzbgpMYSBzZWdtZW50YWNpw7NuIG8gY2x1c3RlcnMgZXMgdW4gYWxnb3JpdG1vIMO6dGlsIHBhcmEgbGFzIGVtcHJlc2FzIHF1ZSBkZXNlYW4gY2xhc2lmaWNhciBhIHN1cyBjbGllbnRlcyB5IGRpcmlnaXIgY2FtcGHDsWFzIGRlIG1hcmtldGluZyBtw6FzIGVuZm9jYWRhcyB5IGVzcGVjaWFsaXphZGFzLgpNw6FzIGluZm9ybWFjacOzbjoKW1IgZm9yIERhdGEgU2NpZW5jZSAoMmVkKV0oaHR0cHM6Ly9yNGRzLmhhZC5jby5uei8pCgoKCgo=