La segmentación o clústers es un conjunto de técnicas cuyo propósito es formar grupos a partir de un conjunto de elementos.
#install.packages("cluster")
#install.packages("ggplot2")
#install.packages("data.table")
#install.packages("factoextra")
library(cluster)
library(ggplot2)
library(data.table)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
df <- data.frame(x=c(2,2,8,5,7,6,1,4), y=c(10,5,4,8,5,4,2,9))
grupos <- 3
segmentos <- kmeans(df,4)
segmentos
## K-means clustering with 4 clusters of sizes 3, 2, 1, 2
##
## Cluster means:
## x y
## 1 7.0 4.333333
## 2 4.5 8.500000
## 3 2.0 10.000000
## 4 1.5 3.500000
##
## Clustering vector:
## [1] 3 4 1 2 1 1 4 2
##
## Within cluster sum of squares by cluster:
## [1] 2.666667 1.000000 0.000000 5.000000
## (between_SS / total_SS = 91.4 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
asignacion <- cbind(df, cluster = segmentos$cluster)
asignacion
## x y cluster
## 1 2 10 3
## 2 2 5 4
## 3 8 4 1
## 4 5 8 2
## 5 7 5 1
## 6 6 4 1
## 7 1 2 4
## 8 4 9 2
fviz_cluster(segmentos, data=df)
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")
Los clusters es una herramienta de entrenado no supervisado que le sirve al analitico para ver los posibles grupos que se pueden formar dentro de la base de datos.