
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==