
CONTEXTO
La segmentación o clusters es un conjunto
de técinicas cuyo propósito es formar grupos a partir de un conjunto de
elementos.
Más información: R for Data
Science
Paso 1. Instalar paquetes y llamar librerías
#install.packages('cluster')
library (cluster)
#install.packages('ggplot2')
library(ggplot2)
#install.packages('data.table')
library(data.table)
#install.packages('factoextra')
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Paso 2. Obtener los datos
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 = 3
Paso 4. Generar los segmentos
segmentos <- kmeans(df,grupos)
segmentos
## K-means clustering with 3 clusters of sizes 3, 3, 2
##
## Cluster means:
## x y
## 1 7.000000 4.333333
## 2 3.666667 9.000000
## 3 1.500000 3.500000
##
## Clustering vector:
## [1] 2 3 1 2 1 1 3 2
##
## Within cluster sum of squares by cluster:
## [1] 2.666667 6.666667 5.000000
## (between_SS / total_SS = 85.8 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Paso 5. Asignar el grupo al que pertenece cada observación
asignacion <- cbind(df, cluster = segmentos$cluster)
asignacion
## x y cluster
## 1 2 10 2
## 2 2 5 3
## 3 8 4 1
## 4 5 8 2
## 5 7 5 1
## 6 6 4 1
## 7 1 2 3
## 8 4 9 2
Paso 6. Graficar los Clusters
fviz_cluster(segmentos, data=df)

Paso 7. Optimizar la cantidad de Grupos
La cantidad óptima de grupos corresponde al punto mas alto en la
siguiente gráfica
set.seed(123)
optimizacion = clusGap(df, FUN=kmeans, nstart=1, K.max=7)
plot(optimizacion, xlab= 'Número de clusters K')

Conclusión
La segmentación o clusters es un algoritmo muy útil para las empresas
que desean clasificar a sus clientes y dirigir campañas de marketing más
enfocada y especializadas.
LS0tDQp0aXRsZTogIkFuw6FsaXNpc0NsdXN0ZXJzQ29uY2VudHJhY2nDs24iDQphdXRob3I6ICJFZHVhcmRvIENhbWFjaG8gLSBBMDEwMjY0MzciDQpkYXRlOiAiMjAyNC0wMi0xOSINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KLS0tDQoNCiFbXShDOlxcVXNlcnNcXEVkdWFyZG9cXERlc2t0b3BcXFIgQ29kZXNcXENsdXN0ZXJJbWFnZS5wbmcpDQoNCiMgQ09OVEVYVE8NCg0KTGEgKipzZWdtZW50YWNpw7NuKiogbyAqY2x1c3RlcnMqIGVzIHVuIGNvbmp1bnRvIGRlIHTDqWNpbmljYXMgY3V5byBwcm9ww7NzaXRvIGVzIGZvcm1hciBncnVwb3MgYSBwYXJ0aXIgZGUgdW4gY29uanVudG8gZGUgZWxlbWVudG9zLg0KDQpNw6FzIGluZm9ybWFjacOzbjoNCltSIGZvciBEYXRhIFNjaWVuY2VdKGh0dHBzOi8vcjRkcy5oYWRsZXkubnovKQ0KDQojIFBhc28gMS4gSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyw61hcyANCg0KYGBge3IsIHdhcm5pbmc9RkFMU0V9DQojaW5zdGFsbC5wYWNrYWdlcygnY2x1c3RlcicpDQpsaWJyYXJ5IChjbHVzdGVyKQ0KI2luc3RhbGwucGFja2FnZXMoJ2dncGxvdDInKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KI2luc3RhbGwucGFja2FnZXMoJ2RhdGEudGFibGUnKQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KI2luc3RhbGwucGFja2FnZXMoJ2ZhY3RvZXh0cmEnKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KYGBgDQoNCiMgUGFzbyAyLiBPYnRlbmVyIGxvcyBkYXRvcw0KDQpgYGB7cn0NCmRmID0gZGF0YS5mcmFtZSAoeD1jKDIsMiw4LDUsNyw2LDEsNCksIHk9YygxMCw1LDQsOCw1LDQsMiw5KSkNCmBgYA0KDQojIFBhc28gMy4gQ2FudGlkYWQgZGUgZ3J1cG9zDQoNCmBgYHtyfQ0KZ3J1cG9zID0gMw0KDQpgYGANCg0KIyBQYXNvIDQuIEdlbmVyYXIgbG9zIHNlZ21lbnRvcw0KDQpgYGB7cn0NCnNlZ21lbnRvcyA8LSBrbWVhbnMoZGYsZ3J1cG9zKQ0Kc2VnbWVudG9zDQpgYGANCg0KDQojIFBhc28gNS4gQXNpZ25hciBlbCBncnVwbyBhbCBxdWUgcGVydGVuZWNlIGNhZGEgb2JzZXJ2YWNpw7NuDQoNCmBgYHtyfQ0KYXNpZ25hY2lvbiA8LSBjYmluZChkZiwgY2x1c3RlciA9IHNlZ21lbnRvcyRjbHVzdGVyKQ0KYXNpZ25hY2lvbg0KYGBgDQoNCiMgUGFzbyA2LiBHcmFmaWNhciBsb3MgQ2x1c3RlcnMNCmBgYHtyfQ0KZnZpel9jbHVzdGVyKHNlZ21lbnRvcywgZGF0YT1kZikNCmBgYA0KDQojIFBhc28gNy4gT3B0aW1pemFyIGxhIGNhbnRpZGFkIGRlIEdydXBvcw0KTGEgY2FudGlkYWQgw7NwdGltYSBkZSBncnVwb3MgY29ycmVzcG9uZGUgYWwgcHVudG8gbWFzIGFsdG8gZW4gbGEgc2lndWllbnRlIGdyw6FmaWNhDQoNCmBgYHtyfQ0Kc2V0LnNlZWQoMTIzKQ0Kb3B0aW1pemFjaW9uID0gY2x1c0dhcChkZiwgRlVOPWttZWFucywgbnN0YXJ0PTEsIEsubWF4PTcpDQpwbG90KG9wdGltaXphY2lvbiwgeGxhYj0gJ07Dum1lcm8gZGUgY2x1c3RlcnMgSycpDQpgYGANCg0KIyBDb25jbHVzacOzbiANCkxhIHNlZ21lbnRhY2nDs24gbyBjbHVzdGVycyBlcyB1biBhbGdvcml0bW8gbXV5IMO6dGlsIHBhcmEgbGFzDQplbXByZXNhcyBxdWUgZGVzZWFuIGNsYXNpZmljYXIgYSBzdXMgY2xpZW50ZXMgeSBkaXJpZ2lyIGNhbXBhw7Fhcw0KZGUgbWFya2V0aW5nIG3DoXMgZW5mb2NhZGEgeSBlc3BlY2lhbGl6YWRhcy4NCg0KDQo=