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=