Contexto.

La segmentación o clusters es un conjunto de técnicas cuyo propósito es formar grupos a partir de un conjunto de elementos.

Más información: [R for Data Science (2ed)] (https://r4ds.hadley.nz/)

Paso 1.

Instalar paquetes y llamar librerías.

  #install.packages("cluster")
  library(cluster)
  #install.package("ggplot2")
  library(ggplot2)
  #install.packages("data.table")
  library(data.table)
  #install.packages("factoextra")
  library(factoextra)

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 (clusters).

  segmentos<- kmeans(df, grupos)
  segmentos
## K-means clustering with 3 clusters of sizes 3, 3, 2
## 
## Cluster means:
##          x        y
## 1 3.666667 9.000000
## 2 7.000000 4.333333
## 3 1.500000 3.500000
## 
## Clustering vector:
## [1] 1 3 2 1 2 2 3 1
## 
## Within cluster sum of squares by cluster:
## [1] 6.666667 2.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)
  head(asignacion) 
##   x  y cluster
## 1 2 10       1
## 2 2  5       3
## 3 8  4       2
## 4 5  8       1
## 5 7  5       2
## 6 6  4       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 más alto 
  # de 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 algorítmo muy útil, como primer ejemplo tenemos a las empresas que desean clasificar sus clientes y dirigir campañas de marketing más enfocadas y especializadas.

LS0tDQp0aXRsZTogIlNlZ21lbnRhY2nDs24gYsOhc2ljYSAoY2x1c3RlcnMpIg0KYXV0aG9yOiAiTHVpcyBEYXZpZCBTw6FuY2hleiBDYXN0aWxsbyAtIEEwMTI3NTY1NSINCmRhdGU6ICIyLzE5LzIwMjQiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQogICFbXShDOlxcVXNlcnNcXEx1aXNEXFxEb2N1bWVudHNcXENvbmNlbnRyYWNpw7NuXFxzZWdtZW50YWNpb25fYmFzaWNhLnBuZykNCg0KICANCiMgQ29udGV4dG8uDQogIExhICoqc2VnbWVudGFjacOzbioqIG8gKmNsdXN0ZXJzKiBlcyB1biBjb25qdW50byBkZSB0w6ljbmljYXMgY3V5byBwcm9ww7NzaXRvIA0KICBlcyBmb3JtYXIgZ3J1cG9zIGEgcGFydGlyIGRlIHVuIGNvbmp1bnRvIGRlIGVsZW1lbnRvcy4NCiAgDQogIE3DoXMgaW5mb3JtYWNpw7NuOiANCiAgW1IgZm9yIERhdGEgU2NpZW5jZSAoMmVkKV0gKGh0dHBzOi8vcjRkcy5oYWRsZXkubnovKQ0KDQojIFBhc28gMS4gDQojIyBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzLg0KYGBge3IgZWNobz1UUlVFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KICAjaW5zdGFsbC5wYWNrYWdlcygiY2x1c3RlciIpDQogIGxpYnJhcnkoY2x1c3RlcikNCiAgI2luc3RhbGwucGFja2FnZSgiZ2dwbG90MiIpDQogIGxpYnJhcnkoZ2dwbG90MikNCiAgI2luc3RhbGwucGFja2FnZXMoImRhdGEudGFibGUiKQ0KICBsaWJyYXJ5KGRhdGEudGFibGUpDQogICNpbnN0YWxsLnBhY2thZ2VzKCJmYWN0b2V4dHJhIikNCiAgbGlicmFyeShmYWN0b2V4dHJhKQ0KYGBgDQoNCiMgUGFzbyAyLiANCiMjIE9idGVuZXIgbG9zIGRhdG9zLg0KYGBge3J9DQogIGRmPC0gZGF0YS5mcmFtZSAoeD1jKDIsMiw4LDUsNyw2LDEsNCksIHk9YygxMCw1LDQsOCw1LDQsMiw5KSkNCmBgYA0KDQojIFBhc28gMy4gDQojIyBDYW50aWRhZCBkZSBncnVwb3MuDQpgYGB7cn0NCiAgZ3J1cG9zIDwtIDMNCmBgYA0KDQojIFBhc28gNC4gDQojIyBHZW5lcmFyIGxvcyBzZWdtZW50b3MgIChjbHVzdGVycykuDQpgYGB7cn0NCiAgc2VnbWVudG9zPC0ga21lYW5zKGRmLCBncnVwb3MpDQogIHNlZ21lbnRvcw0KYGBgDQoNCiMgUGFzbyA1LiANCiMjIEFzaWduYXIgZWwgZ3J1cG8gYWwgcXVlIHBlcnRlbmVjZSBjYWRhIG9ic2VydmFjacOzbi4NCmBgYHtyfQ0KICBhc2lnbmFjaW9uPC1jYmluZChkZiwgY2x1c3RlciA9IHNlZ21lbnRvcyRjbHVzdGVyKQ0KICBoZWFkKGFzaWduYWNpb24pIA0KYGBgDQoNCiMgUGFzbyA2LiANCiMjIEdyYWZpY2FyIGxvcyBjbHVzdGVycw0KYGBge3J9DQogIGZ2aXpfY2x1c3RlcihzZWdtZW50b3MsIGRhdGE9ZGYpDQpgYGANCg0KIyBQYXNvIDcuIA0KIyMgT3B0aW1pemFyIGxhIGNhbnRpZGFkIGRlIGdydXBvcw0KYGBge3J9DQogICMgTGEgY2FudGlkYWQgw7NwdGltYSBkZSBncnVwb3MgY29ycmVzcG9uZGUgYWwgcHVudG8gbcOhcyBhbHRvIA0KICAjIGRlIGxhIHNpZ3VpZW50ZSBncsOhZmljYToNCiAgc2V0LnNlZWQoMTIzKQ0KICBvcHRpbWl6YWNpb248LSBjbHVzR2FwKGRmLCBGVU49a21lYW5zLCBuc3RhcnQ9MSwgSy5tYXggPSA3KQ0KICBwbG90KG9wdGltaXphY2lvbiwgeGxhYj0iTsO6bWVybyBkZSBjbHVzdGVycyBrIikNCmBgYA0KDQojIENvbmNsdXNpw7NuLg0KTGEgc2VnbWVudGFjacOzbiBvIGNsdXN0ZXJzIGVzIHVuIGFsZ29yw610bW8gbXV5IMO6dGlsLCBjb21vIHByaW1lciBlamVtcGxvIHRlbmVtb3MgYSBsYXMgZW1wcmVzYXMgcXVlIGRlc2VhbiBjbGFzaWZpY2FyIHN1cyBjbGllbnRlcyB5IGRpcmlnaXIgY2FtcGHDsWFzIGRlIG1hcmtldGluZyBtw6FzIGVuZm9jYWRhcyB5IGVzcGVjaWFsaXphZGFzLg0KICANCiAgDQogIA==