Esta sección abarca la preparación del entorno de trabajo, la exploración de los datos y la preparación de los mismos para el clustering.
Antes de explorar los datos, se configura el entorno de trabajo. Se
configura el entorno de trabajo instalando readr,
ggplot2, factoextra, dplyr y el
dataset transactions.csv. Nota: Reemplazar la ruta de
acceso al archivo csv.
library(readr)
library(ggplot2)
library(factoextra)
library(dplyr)
transactions <- read_delim("/Users/anadinezio/Downloads/CA_Clase 2/Transactions.csv",
delim = ";", escape_double = FALSE,trim_ws = TRUE)
La exploración inicial es fundamental para guiar los siguientes pasos del análisis.
head(transactions) # Muestra las primeras filas de la tabla, da un vistazo rápido de cómo se ven los datos.
## # A tibble: 6 × 7
## orderId clientId product gender orderdate Quantity Price
## <dbl> <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 1 255 g female 03/01/2017 3 5
## 2 1 255 a female 03/01/2017 3 14
## 3 1 255 b female 03/01/2017 3 22
## 4 1 255 a female 03/01/2017 1 14
## 5 2 145 h male 05/01/2017 1 26
## 6 2 145 h male 05/01/2017 1 26
tail(transactions) # Muestra las últimas filas, puede ser útil para ver si hay algún patrón o anomalía al final del conjunto de datos.
## # A tibble: 6 × 7
## orderId clientId product gender orderdate Quantity Price
## <dbl> <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 999 241 i female 13/03/2017 2 32
## 2 1000 235 e female 03/02/2017 2 30
## 3 1000 235 b female 03/02/2017 1 22
## 4 1000 235 f female 03/02/2017 1 24
## 5 1000 235 h female 03/02/2017 1 26
## 6 1000 235 g female 03/02/2017 2 5
summary(transactions) # Resumen estadístico de cada columna (media, rango, etc.).
## orderId clientId product gender
## Min. : 1.0 Min. : 1.0 Length:4805 Length:4805
## 1st Qu.: 261.0 1st Qu.: 72.0 Class :character Class :character
## Median : 510.0 Median :143.0 Mode :character Mode :character
## Mean : 504.6 Mean :148.7
## 3rd Qu.: 750.0 3rd Qu.:224.0
## Max. :1000.0 Max. :300.0
## orderdate Quantity Price
## Length:4805 Min. :1.000 Min. : 5.0
## Class :character 1st Qu.:1.000 1st Qu.:12.0
## Mode :character Median :2.000 Median :14.0
## Mean :1.977 Mean :18.2
## 3rd Qu.:3.000 3rd Qu.:26.0
## Max. :3.000 Max. :32.0
str(transactions) # Estructura de los datos (tipo de cada columna y valores).
## spc_tbl_ [4,805 × 7] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ orderId : num [1:4805] 1 1 1 1 2 2 2 2 3 3 ...
## $ clientId : num [1:4805] 255 255 255 255 145 145 145 145 241 241 ...
## $ product : chr [1:4805] "g" "a" "b" "a" ...
## $ gender : chr [1:4805] "female" "female" "female" "female" ...
## $ orderdate: chr [1:4805] "03/01/2017" "03/01/2017" "03/01/2017" "03/01/2017" ...
## $ Quantity : num [1:4805] 3 3 3 1 1 1 1 1 3 2 ...
## $ Price : num [1:4805] 5 14 22 14 26 26 14 26 12 5 ...
## - attr(*, "spec")=
## .. cols(
## .. orderId = col_double(),
## .. clientId = col_double(),
## .. product = col_character(),
## .. gender = col_character(),
## .. orderdate = col_character(),
## .. Quantity = col_double(),
## .. Price = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
ncol(transactions) # Número de columnas (variables).
## [1] 7
nrow(transactions) # Número de filas (observaciones).
## [1] 4805
La exploración de los datos es fundamental para determinar cuáles son los campos/columnas que se utilizarán para el clustering. En este caso, tiene sentido analizar el comportamiento de los clientes por género. Se necesita tener una variable que caracterice al cliente y al menos otra que muestre su comportamiento relacionado con el patron compra.
Columna TotalPrice Antes de elegir las columnas, se agrega una columna que almacene la cantidad total de la venta. Es decir, una columna que multiplique Quantity * Price
# Crear nueva columna
transactions$TotalPrice <- transactions$Price * transactions$Quantity
head(transactions)
## # A tibble: 6 × 8
## orderId clientId product gender orderdate Quantity Price TotalPrice
## <dbl> <dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 1 255 g female 03/01/2017 3 5 15
## 2 1 255 a female 03/01/2017 3 14 42
## 3 1 255 b female 03/01/2017 3 22 66
## 4 1 255 a female 03/01/2017 1 14 14
## 5 2 145 h male 05/01/2017 1 26 26
## 6 2 145 h male 05/01/2017 1 26 26
Columnas elegidas para el analisis de clustering:
gender y TotalPrice.
Este analisis se hace con la intencion de explorar si hay genero que
compre mas que el otro.
Despues de entender como esta compuesto el conjunto de datos, se eliminan las columnas de aquellos datos que no son relevantes para el analisis de clustering.
# Se eliminan todas las columnas menos gender y product
transactions = transactions[,-c(1,2,3,5,6,7)]
head(transactions)
## # A tibble: 6 × 2
## gender TotalPrice
## <chr> <dbl>
## 1 female 15
## 2 female 42
## 3 female 66
## 4 female 14
## 5 male 26
## 6 male 26
ggplot(
transactions,aes(x=gender, y=TotalPrice, color = gender))+
geom_point() +
labs(x = "Género", y = "PrecioTotal") + # Etiquetas de los ejes
theme(
axis.title.x = element_text(size = 15),
axis.text.x = element_text(size = 10),
axis.title.y = element_text(size = 15)
)+
scale_color_manual(values = c("male" = "lightblue", "female" = "pink")) # Colores personalizados
# Crear un gráfico de barras para entender la distribucion de productos por genero.
ggplot(transactions, aes(x = TotalPrice, fill = gender)) +
geom_bar(position = "dodge") +
labs(title = "Distribución de Ventas por Género",
x = "Ventas",
y = "Frecuencia") +
theme_minimal()+
theme(
legend.title = element_blank(),
legend.text = element_text(size = 12), # Tamaño de los textos de la leyenda
panel.grid.major = element_blank(), # Eliminar líneas de la cuadrícula principal
panel.grid.minor = element_blank(), # Eliminar líneas de la cuadrícula secundaria
panel.border = element_blank(), # Eliminar borde del panel
axis.line = element_line(color = "black", size = 0.5) # Color y tamaño de las líneas de los ejes
)+
scale_fill_manual(values = c("lightblue", "pink"))
Se requiere hacer una transformacion a tipo numerica para la varianle genero para la aplicacion de kmeans.
# Convertir la columna gender a numerico
transactions$gender_numeric <- ifelse(transactions$gender == "male", 1, 0)
head(transactions)
## # A tibble: 6 × 3
## gender TotalPrice gender_numeric
## <chr> <dbl> <dbl>
## 1 female 15 0
## 2 female 42 0
## 3 female 66 0
## 4 female 14 0
## 5 male 26 1
## 6 male 26 1
transactions = transactions[, -1] #se elimina la columna gender
class(transactions)
## [1] "tbl_df" "tbl" "data.frame"
head(transactions)
## # A tibble: 6 × 2
## TotalPrice gender_numeric
## <dbl> <dbl>
## 1 15 0
## 2 42 0
## 3 66 0
## 4 14 0
## 5 26 1
## 6 26 1
He observado que se obtienen diferentes resultados cuando se normalizan los datos, es por eso que se deja este paso en el proceso de preparacion de los datos.
transactions= scale (transactions)
# se verifica el formato del conjunto de datos
class(transactions)
## [1] "matrix" "array"
head(transactions)
## TotalPrice gender_numeric
## [1,] -0.8716496 -0.8960105
## [2,] 0.2550500 -0.8960105
## [3,] 1.2565608 -0.8960105
## [4,] -0.9133793 -0.8960105
## [5,] -0.4126238 1.1158261
## [6,] -0.4126238 1.1158261
transactions = as.data.frame(transactions)
transactions <- transactions %>%
select(gender_numeric, TotalPrice)
head(transactions)
## gender_numeric TotalPrice
## 1 -0.8960105 -0.8716496
## 2 -0.8960105 0.2550500
## 3 -0.8960105 1.2565608
## 4 -0.8960105 -0.9133793
## 5 1.1158261 -0.4126238
## 6 1.1158261 -0.4126238
class(transactions)
## [1] "data.frame"
Una vez que los datos estan listos se procede a hacer el analisis de clustering con el operador kmeans
library(patchwork)
plot1 <- fviz_nbclust(transactions, kmeans, method = "wss")
#fviz_nbclust(transactions, kmeans, method = "gap_stat") # metodo no recomendado para un pequeño data set
plot2 <- fviz_nbclust(transactions, kmeans, method = "silhouette")
# Combinar los gráficos
plot1 + plot2
Numero de clusters (k): el grafico arrojado por el metodo de wss no tiene un quiebre claro de tendencia, sin embargo a partir del grafico de barras hecho antes, diria que tiene sentido analizar un k =2. Por otro lado el metodo de Silhouette dan resultado de k=4. Se procede a analizar los dos casos.
# Se pone la semilla
set.seed(123)
# Aplicacion del algoritmo kmeans: Operador: kmeans (datos a clusterizar, nro de clusters) y se asigna a km
km <- kmeans(transactions, 4)
km
## K-means clustering with 4 clusters of sizes 1672, 993, 791, 1349
##
## Cluster means:
## gender_numeric TotalPrice
## 1 -0.8960105 -0.6506723
## 2 -0.8960105 1.0936767
## 3 1.1158261 1.1327964
## 4 1.1158261 -0.6628159
##
## Clustering vector:
## [1] 1 2 2 1 4 4 4 4 1 1 1 2 1 1 2 1 2 2 1 1 1 1 1 1 2 1 2 2 1 3 2 1 1 1 1 1 1
## [38] 1 1 1 1 2 1 1 2 2 1 1 2 1 2 2 2 1 2 2 1 1 1 1 2 4 4 3 4 3 4 3 4 4 4 3 4 4
## [75] 4 4 3 4 3 4 3 3 1 2 2 1 1 1 2 1 1 1 1 3 3 4 4 1 2 1 1 1 1 2 1 1 1 2 1 1 3
## [112] 4 3 3 4 4 3 4 1 2 1 2 1 1 3 4 4 4 3 4 3 3 4 4 3 2 1 1 1 1 2 2 1 4 3 4 4 4
## [149] 4 3 1 1 1 2 1 1 3 3 4 4 4 4 3 4 3 4 3 1 2 1 1 1 2 1 4 3 1 1 2 1 2 4 4 4 4
## [186] 3 3 3 4 4 4 3 1 1 1 2 1 1 2 1 1 2 4 4 4 4 4 4 3 1 1 2 2 2 4 4 4 4 3 3 3 3
## [223] 3 4 4 4 4 4 3 4 4 2 1 1 1 2 2 1 1 4 4 3 3 4 1 1 1 1 2 1 4 3 4 4 4 3 4 4 3
## [260] 4 4 4 1 1 2 2 2 2 2 1 2 3 4 4 2 2 1 1 4 4 3 3 1 1 1 2 1 1 2 1 1 1 1 2 4 4
## [297] 4 4 4 4 4 3 2 1 1 1 4 1 1 1 1 1 1 2 1 1 2 1 2 2 2 1 4 3 3 4 2 1 1 1 1 2 1
## [334] 4 4 4 4 3 4 4 3 4 4 4 3 4 3 1 1 1 1 1 2 1 1 1 1 1 1 2 3 4 2 1 1 2 3 4 4 3
## [371] 4 4 4 4 1 1 1 2 1 2 1 1 2 2 4 3 4 2 2 4 4 3 3 4 4 3 1 2 3 4 4 4 4 4 4 3 1
## [408] 4 3 3 4 4 3 4 3 4 4 4 3 4 4 4 3 4 1 1 2 2 1 2 3 4 1 2 1 1 1 1 1 1 1 4 4 4
## [445] 3 4 4 4 3 3 2 1 1 2 1 2 1 1 1 2 1 1 1 1 4 3 4 2 1 1 2 1 2 4 3 4 3 4 3 4 3
## [482] 4 2 1 1 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1 1 2 1 1 1 2 1 2 4 4 4 4 4 4 4 4 2 1
## [519] 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 2 1 3 4 4 2 1 1 1 1 1 1 2 1 4 4 4 4 4 3
## [556] 1 1 1 1 3 4 4 4 4 1 2 1 1 1 1 1 2 1 1 2 1 2 1 2 2 1 4 4 4 4 4 3 2 1 2 2 1
## [593] 1 1 4 4 1 1 2 1 2 2 4 4 3 4 4 2 2 2 2 2 1 1 2 1 2 2 1 1 1 2 1 2 1 1 4 4 4
## [630] 3 3 4 3 4 4 3 3 2 2 2 2 1 1 2 2 2 2 1 4 4 3 1 1 2 1 1 1 3 4 3 1 1 2 3 4 3
## [667] 2 1 2 1 1 1 2 4 3 4 4 3 4 4 4 4 1 1 2 1 1 2 2 2 1 2 4 4 3 4 4 3 4 4 1 1 1
## [704] 1 1 1 3 4 3 3 4 4 4 4 3 1 1 1 2 1 1 1 1 1 2 1 2 2 1 2 1 1 2 1 1 1 1 1 1 3
## [741] 4 4 4 3 3 3 3 4 4 4 4 4 3 4 4 3 4 1 1 1 2 2 1 2 2 1 2 2 1 1 2 2 1 4 3 4 2
## [778] 1 1 1 1 1 3 4 1 1 1 1 1 1 2 1 2 1 1 1 2 2 1 2 2 2 2 2 1 3 3 4 4 3 3 4 1 1
## [815] 2 1 2 1 1 1 1 2 2 2 2 1 1 1 2 2 4 3 4 3 4 4 4 3 4 4 3 1 1 1 2 1 2 1 1 2 1
## [852] 4 4 4 4 3 3 4 4 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 1 2 1 1 2 1 1 1 3 4 4 4 4 4
## [889] 4 3 4 3 3 1 1 2 2 1 1 1 1 1 1 1 1 2 2 2 1 4 4 3 3 4 2 1 1 1 1 1 4 4 4 4 3
## [926] 4 3 3 1 2 1 1 2 4 3 3 2 2 2 1 2 1 1 1 4 3 3 3 3 4 4 4 1 1 2 1 1 4 4 4 4 3
## [963] 4 3 3 4 4 4 4 1 2 1 2 3 3 4 4 4 3 4 4 4 4 4 3 3 4 3 4 2 2 2 2 1 1 2 1 1 1
## [1000] 1 1 4 3 4 4 3 2 1 1 2 1 2 2 1 1 2 1 1 2 1 4 4 2 2 1 1 1 1 1 1 2 1 1 1 2 2
## [1037] 2 2 2 2 2 1 1 2 1 2 1 2 1 1 1 2 1 3 4 4 3 4 3 3 4 3 2 1 1 1 1 1 1 2 1 1 1
## [1074] 1 1 1 1 1 1 2 3 4 4 1 1 1 1 4 4 3 4 3 3 4 4 4 4 4 3 4 4 3 4 1 2 1 1 1 1 2
## [1111] 1 2 2 3 4 4 4 3 3 4 3 3 3 3 3 1 1 1 1 1 1 2 1 1 1 4 4 3 2 2 1 1 4 3 2 1 1
## [1148] 2 1 1 1 1 1 1 4 4 4 4 3 1 2 2 1 2 1 2 1 1 4 4 4 4 1 2 2 1 1 2 2 2 2 1 1 1
## [1185] 1 4 3 3 4 4 4 4 3 4 3 3 3 3 3 3 4 4 3 4 4 3 4 4 4 4 2 1 1 1 2 1 2 1 1 1 3
## [1222] 4 4 4 4 4 3 4 4 4 3 4 4 2 1 1 2 1 3 3 4 1 1 2 2 2 1 2 1 2 1 1 1 1 2 2 1 1
## [1259] 1 1 4 4 3 4 4 3 2 1 1 1 2 2 3 4 2 1 3 4 3 4 3 4 4 4 3 4 4 4 3 4 3 4 3 4 1
## [1296] 1 2 1 2 2 3 3 3 2 2 1 1 1 4 4 4 4 3 4 2 1 2 1 1 2 1 2 1 2 1 1 2 4 3 4 4 4
## [1333] 4 4 3 1 2 2 1 1 1 2 1 2 1 1 2 2 2 1 2 2 1 1 1 2 1 1 1 2 1 3 4 4 4 3 4 4 2
## [1370] 1 1 1 1 4 4 4 3 1 2 1 1 2 1 2 2 2 4 3 3 3 1 2 1 2 4 4 3 3 3 3 3 4 2 1 1 2
## [1407] 1 1 2 1 2 2 1 1 2 1 2 2 4 3 3 4 3 1 1 2 1 1 1 4 3 4 3 2 1 2 2 2 1 1 2 1 4
## [1444] 3 3 3 4 4 3 4 3 1 2 1 1 4 3 3 4 4 4 3 3 4 1 1 1 1 2 1 1 2 1 2 2 3 4 3 4 4
## [1481] 3 3 4 1 2 1 3 4 4 4 4 2 2 1 4 4 3 3 4 1 1 1 2 1 1 2 1 1 2 2 1 1 1 2 2 2 1
## [1518] 4 4 4 3 1 2 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 3 3 4 4 3 4 4 4 4 4 3 4 3 4 4
## [1555] 3 4 4 4 4 4 4 4 3 3 4 4 1 2 2 1 1 2 1 1 1 2 2 2 2 3 4 4 4 3 4 3 4 1 1 1 4
## [1592] 3 4 4 3 4 2 1 1 2 1 1 1 2 2 1 1 2 2 1 1 4 4 4 3 4 4 4 4 4 3 3 4 3 3 4 3 4
## [1629] 4 3 3 4 1 2 1 1 1 2 1 1 4 3 4 4 4 3 4 4 4 4 3 4 3 4 3 4 1 1 1 3 4 4 4 4 3
## [1666] 4 4 4 4 4 2 1 2 1 2 1 1 2 1 2 1 1 2 2 2 4 3 1 2 1 1 2 1 1 1 2 2 1 2 2 2 1
## [1703] 2 1 3 4 3 3 2 2 2 1 2 2 2 1 2 2 1 1 2 1 1 3 3 4 4 3 4 4 3 3 3 3 3 4 3 4 3
## [1740] 4 3 4 3 4 3 1 1 1 2 1 2 1 4 4 4 2 1 2 1 1 4 3 4 4 4 3 2 2 2 1 1 1 2 2 1 2
## [1777] 2 4 4 2 1 2 1 1 1 2 2 1 2 2 2 1 1 1 3 3 3 4 3 3 4 3 2 1 1 1 1 2 1 2 1 2 1
## [1814] 4 4 3 4 4 4 1 1 2 2 2 1 1 3 3 4 4 4 4 2 2 2 1 2 1 1 4 3 3 3 4 1 2 1 4 4 3
## [1851] 3 1 2 1 2 2 1 2 1 1 2 1 2 1 2 1 1 1 2 4 3 4 1 1 1 1 2 2 1 1 1 2 1 1 2 1 1
## [1888] 2 3 3 1 1 2 2 1 1 4 3 4 3 4 4 3 3 3 3 4 2 1 2 1 2 1 1 2 1 1 2 3 4 3 4 1 1
## [1925] 1 1 1 1 1 3 3 3 1 2 1 1 2 2 2 2 1 1 2 1 3 3 4 4 4 3 1 1 2 1 1 2 4 4 3 4 1
## [1962] 1 1 1 4 3 4 3 4 3 4 3 4 3 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 1 2 4 4 4 3 4 4 4
## [1999] 4 3 4 3 3 1 1 1 1 2 2 4 4 2 1 1 1 2 2 1 2 1 2 3 4 3 4 4 4 4 2 1 2 1 1 1 1
## [2036] 1 1 2 1 1 1 1 1 1 2 1 1 4 3 4 2 1 1 1 1 2 1 3 4 3 4 2 1 1 1 2 1 1 1 2 1 1
## [2073] 2 2 1 3 4 4 4 3 4 4 4 4 4 4 4 4 4 3 4 4 3 4 3 4 1 1 1 1 2 3 3 4 4 1 2 1 2
## [2110] 4 3 4 4 4 3 3 4 4 3 1 2 2 4 3 3 3 4 4 4 4 2 2 2 1 1 1 4 3 4 3 3 3 1 1 2 1
## [2147] 1 1 1 1 1 2 1 1 1 1 2 1 1 4 3 4 4 4 4 4 1 1 2 2 2 2 2 2 2 1 1 1 2 1 1 4 4
## [2184] 4 4 4 4 4 3 4 3 4 3 4 4 4 4 4 4 1 1 2 2 1 2 1 2 3 4 4 3 4 4 4 1 4 4 4 3 4
## [2221] 3 3 4 3 3 3 3 4 4 4 4 4 3 3 4 3 3 4 4 3 4 3 4 4 4 4 4 4 3 3 1 1 1 2 1 2 3
## [2258] 3 4 2 1 2 1 1 2 1 2 1 2 1 2 2 1 1 1 1 3 3 4 4 4 4 4 4 4 1 2 2 4 3 3 4 1 2
## [2295] 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 2 2 1 2 2 1 1 1 4 4 4 2 1 2 4 4 3 4 4 2 1 1
## [2332] 1 4 3 4 4 3 4 4 4 4 2 1 2 2 2 3 4 4 1 1 1 2 2 2 2 1 1 1 1 1 2 1 4 4 4 4 4
## [2369] 1 1 2 1 1 3 4 3 3 3 3 3 4 4 4 4 1 2 2 2 2 2 2 1 1 1 1 1 1 3 4 4 4 4 3 3 4
## [2406] 4 3 3 3 3 3 3 1 1 2 1 1 4 3 3 3 4 4 3 4 3 4 3 3 4 2 1 2 2 2 1 2 2 2 1 2 2
## [2443] 4 4 4 2 1 1 1 1 1 2 1 1 1 1 1 1 2 2 2 1 1 1 2 1 1 1 1 2 1 2 4 3 1 1 1 1 2
## [2480] 3 3 4 3 3 3 3 3 3 4 4 3 3 4 4 4 4 4 3 3 4 4 3 3 4 4 4 2 1 2 1 1 2 1 2 1 2
## [2517] 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 2 1 2 2 1 2 1 1 1 1 1 2
## [2554] 4 4 3 3 3 4 2 2 1 2 1 1 1 2 1 1 2 2 3 3 4 4 3 4 4 4 1 2 2 1 1 2 1 1 1 4 4
## [2591] 4 3 3 4 2 2 2 1 2 2 2 1 2 1 4 3 4 3 3 3 3 3 3 3 3 4 4 4 3 4 3 3 2 2 1 1 1
## [2628] 1 2 1 1 2 2 2 2 2 1 2 2 1 4 4 2 1 2 1 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1 4 3 3
## [2665] 2 2 1 2 2 3 3 4 2 1 1 1 1 3 4 3 3 3 4 4 4 4 1 2 1 1 1 1 2 2 1 3 4 3 3 4 1
## [2702] 1 1 2 1 2 2 2 2 1 2 1 1 1 3 4 4 4 4 4 3 3 4 3 3 3 4 3 4 4 4 1 1 2 1 1 1 1
## [2739] 2 1 1 1 1 2 1 2 2 1 2 1 1 4 4 4 1 1 1 2 2 1 1 1 1 1 1 2 3 4 4 4 1 2 1 1 1
## [2776] 2 2 1 2 2 1 1 3 4 3 3 3 4 3 3 3 4 4 3 4 3 4 4 1 1 1 2 1 1 2 1 1 1 3 4 3 4
## [2813] 4 4 4 1 1 1 2 2 2 1 1 1 1 4 4 3 4 4 4 4 4 3 2 1 1 2 1 1 1 2 1 1 1 1 3 3 3
## [2850] 4 3 4 3 4 4 4 4 4 3 4 3 4 3 3 4 3 4 4 3 4 3 3 1 2 1 1 1 2 1 2 1 1 1 1 2 2
## [2887] 2 1 1 3 3 4 4 4 3 4 3 4 4 3 4 3 4 4 4 1 1 2 2 1 2 2 1 1 2 2 1 1 1 3 4 4 4
## [2924] 4 4 1 2 2 4 3 4 4 4 4 2 1 1 2 1 2 1 2 2 2 2 3 3 4 4 2 2 1 1 1 4 4 4 4 4 4
## [2961] 4 3 4 3 4 4 1 1 2 3 4 4 4 4 3 3 4 2 2 1 1 2 2 1 2 1 1 1 1 1 1 2 1 3 3 3 4
## [2998] 4 4 4 3 4 4 4 3 4 4 3 3 4 4 3 4 4 3 3 3 3 3 4 4 4 1 1 1 1 2 1 1 1 1 1 2 1
## [3035] 1 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 3 2 1 1 2 4 4 3 3 4 4 4 3 4 1 1 1
## [3072] 1 2 3 4 3 4 4 3 4 3 3 4 3 4 4 2 1 2 1 1 1 3 4 3 1 2 1 2 1 1 2 2 1 2 4 3 4
## [3109] 4 3 4 3 1 2 1 2 1 1 2 1 1 1 2 2 3 4 3 2 2 1 1 1 2 3 4 4 4 4 3 4 4 4 4 4 1
## [3146] 2 1 2 1 2 2 1 1 4 3 4 3 4 3 3 3 2 2 4 4 3 4 3 3 2 2 1 1 1 1 1 1 1 1 1 4 4
## [3183] 4 3 3 3 4 3 3 4 4 1 2 4 4 4 3 4 4 4 4 4 3 4 4 4 4 2 1 2 2 1 2 1 2 1 2 2 2
## [3220] 1 2 2 2 2 1 4 3 1 1 2 2 4 4 3 4 3 4 4 4 4 4 4 4 3 4 4 4 2 1 1 1 1 1 1 1 2
## [3257] 1 2 1 1 1 1 1 2 3 3 3 4 4 4 1 1 2 1 1 2 2 1 1 1 1 1 1 2 1 2 2 2 2 1 1 1 4
## [3294] 3 4 3 4 3 4 4 3 4 3 3 4 4 4 1 2 1 1 2 1 1 2 1 1 1 2 1 2 2 1 1 2 1 2 1 2 1
## [3331] 2 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 4 3 4 4 3 4 4 4 1 1 1 2 1 1 1 3 4 2 2
## [3368] 1 2 1 2 1 2 2 1 3 4 3 4 4 4 4 3 4 4 1 2 1 1 1 1 2 1 4 3 4 3 4 4 4 4 3 4 4
## [3405] 4 3 4 3 3 4 3 3 3 4 4 3 3 3 4 4 3 3 4 3 3 4 4 4 4 2 1 2 1 1 2 2 1 2 1 2 4
## [3442] 4 4 4 4 4 4 4 4 3 4 3 2 2 2 1 2 2 2 2 3 4 4 4 4 3 3 1 2 1 3 4 4 4 3 3 4 4
## [3479] 4 3 4 4 4 1 2 1 1 2 1 1 2 2 1 1 1 4 4 4 4 4 4 4 4 3 4 4 2 1 1 2 4 4 4 4 4
## [3516] 2 1 2 2 1 1 1 2 1 1 2 2 2 1 1 2 2 1 1 1 2 2 1 1 1 1 1 4 4 4 1 1 1 2 1 1 1
## [3553] 1 1 2 1 1 3 3 3 4 3 4 2 1 2 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 2 1
## [3590] 1 2 1 1 1 1 3 3 4 4 3 4 4 1 2 2 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 4 3
## [3627] 4 3 4 3 4 4 4 1 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 4 4 4 4 4 4 4 1 1 2 1 1 1
## [3664] 2 1 2 1 1 1 1 2 1 1 1 4 4 4 4 4 4 4 3 4 3 3 3 3 2 1 1 4 4 3 3 4 3 3 4 4 2
## [3701] 1 2 1 2 2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 2 1 1 2 2 1 1 1 1 1 2 2 1 2 2 1 1
## [3738] 1 1 1 3 4 4 4 3 4 4 4 4 4 4 3 4 4 3 4 4 4 3 3 3 4 4 3 3 4 1 1 1 2 1 2 1 2
## [3775] 1 1 1 2 2 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 2 4 3 4 4 4 3 4 4 2 1 2
## [3812] 1 1 2 2 2 1 1 1 1 2 1 1 2 1 3 4 4 4 4 1 1 2 2 1 2 1 4 4 4 3 3 4 4 2 1 2 3
## [3849] 3 3 4 3 4 4 1 1 1 1 2 1 1 1 1 2 4 2 2 2 1 1 1 1 1 3 4 4 4 4 1 4 4 3 4 4 3
## [3886] 3 4 2 2 2 2 2 2 2 1 1 2 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 4 3 4 4 3 3
## [3923] 4 4 3 4 3 2 3 4 3 4 3 3 3 3 4 3 4 3 3 4 3 4 3 4 4 3 4 4 4 4 4 3 4 3 1 1 2
## [3960] 2 2 1 1 2 1 2 1 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 3 3 3 1 1 1 4 4 4 3 4 4 4 3
## [3997] 3 2 1 1 4 4 4 4 1 1 2 2 1 2 1 2 3 3 3 4 4 4 1 2 2 1 1 2 1 2 1 1 2 1 4 4 4
## [4034] 3 4 2 2 1 1 2 2 2 1 2 3 4 3 3 4 3 4 4 4 4 3 4 4 3 4 4 4 4 4 4 3 4 1 2 1 1
## [4071] 2 1 1 1 4 3 3 3 3 3 4 3 4 4 4 4 4 4 4 2 1 2 2 1 1 2 1 1 3 4 4 4 4 4 4 4 4
## [4108] 2 2 2 1 2 1 1 2 1 4 4 3 3 3 4 3 4 4 3 4 4 4 3 3 1 1 3 3 4 4 2 1 2 1 2 1 2
## [4145] 4 4 4 3 4 4 1 1 4 3 4 4 4 4 3 3 1 1 4 4 4 4 4 4 3 4 4 4 3 4 3 3 3 4 4 2 2
## [4182] 1 1 1 1 1 1 2 2 2 1 1 2 4 3 4 3 4 3 3 4 3 3 4 4 3 1 1 2 2 2 2 2 1 4 3 3 4
## [4219] 3 4 3 3 2 1 1 3 4 2 1 1 4 4 3 3 4 4 3 4 3 2 1 1 2 2 2 3 3 3 1 2 1 1 1 3 3
## [4256] 4 4 4 4 3 3 3 3 1 1 1 1 2 1 1 1 3 4 4 4 4 4 4 2 1 1 1 1 1 2 2 1 2 1 1 1 2
## [4293] 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 4 4 4 3 3 4 3 4 3 4 3 4 4 1 1 1 2 2
## [4330] 1 1 1 1 3 4 3 4 1 2 1 2 2 2 2 2 4 4 4 1 1 1 1 1 1 2 1 1 2 2 1 2 2 1 1 1 1
## [4367] 1 2 1 1 1 4 4 3 4 1 1 2 4 1 2 1 1 1 1 1 2 4 4 3 3 3 4 3 4 1 1 2 1 1 2 2 4
## [4404] 4 4 3 1 2 2 1 1 1 1 1 2 1 1 1 4 4 4 4 3 4 3 4 4 4 3 4 1 1 2 1 1 1 1 4 4 4
## [4441] 4 4 3 4 3 1 1 1 1 2 4 4 3 4 3 4 4 4 3 4 4 1 1 1 1 1 3 3 4 4 4 4 3 3 4 4 2
## [4478] 2 1 1 2 2 2 1 2 1 1 2 1 4 4 4 4 4 3 1 1 1 1 1 1 1 2 1 1 4 3 1 1 1 2 2 2 1
## [4515] 2 1 1 1 1 4 4 3 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 3 4 4 3 3 4 4 3 4 4
## [4552] 4 4 4 3 4 4 4 3 1 2 2 4 4 3 4 3 3 4 4 2 1 2 1 1 1 2 2 1 2 2 1 3 4 3 1 1 2
## [4589] 1 1 3 4 3 4 1 1 1 2 2 4 4 4 3 3 4 4 3 3 4 3 1 1 1 1 1 2 1 2 4 4 4 4 2 1 1
## [4626] 2 1 4 3 4 3 3 4 4 3 2 1 1 1 2 1 1 2 1 1 1 1 2 2 1 1 1 2 1 1 1 2 1 2 1 2 2
## [4663] 2 1 4 4 3 4 3 4 3 4 1 1 1 2 1 2 4 1 1 1 1 1 4 4 4 3 3 1 1 2 2 1 1 1 1 3 4
## [4700] 3 4 4 3 4 4 3 3 3 2 1 2 1 2 1 2 2 4 4 4 4 1 2 2 2 2 1 2 4 4 3 1 1 2 1 1 2
## [4737] 2 1 1 2 1 2 2 4 4 2 2 2 2 1 2 1 1 2 1 1 3 3 4 4 4 4 2 1 1 1 1 3 4 3 3 4 3
## [4774] 4 4 3 4 4 4 4 4 3 4 4 4 4 3 4 4 4 4 4 3 3 4 4 4 2 2 2 2 1 1 1 1
##
## Within cluster sum of squares by cluster:
## [1] 234.3281 460.2464 410.7628 195.3423
## (between_SS / total_SS = 86.5 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
tk = transactions #se crea un nuevo conjunto de datos para mantener el original
tk$label = km$cluster
# Se visualiza el nuevo conjunto de datos
head(tk)
## gender_numeric TotalPrice label
## 1 -0.8960105 -0.8716496 1
## 2 -0.8960105 0.2550500 2
## 3 -0.8960105 1.2565608 2
## 4 -0.8960105 -0.9133793 1
## 5 1.1158261 -0.4126238 4
## 6 1.1158261 -0.4126238 4
#Resultado final
fviz_cluster(km, data = transactions,
palette = c("#2E9FDF", "#00AFBB","#00AFff", "#00AF00"),
ellipse.type = "euclid")
# Se pone la semilla
set.seed(123)
# Aplicacion del algoritmo kmeans: Operador: kmeans (datos a clusterizar, nro de clusters) y se asigna a km
km <- kmeans(transactions, 2)
km
## K-means clustering with 2 clusters of sizes 3021, 1784
##
## Cluster means:
## gender_numeric TotalPrice
## 1 0.002356814 -0.656095
## 2 -0.003990994 1.111022
##
## Clustering vector:
## [1] 1 2 2 1 1 1 1 1 1 1 1 2 1 1 2 1 2 2 1 1 1 1 1 1 2 1 2 2 1 2 2 1 1 1 1 1 1
## [38] 1 1 1 1 2 1 1 2 2 1 1 2 1 2 2 2 1 2 2 1 1 1 1 2 1 1 2 1 2 1 2 1 1 1 2 1 1
## [75] 1 1 2 1 2 1 2 2 1 2 2 1 1 1 2 1 1 1 1 2 2 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 2
## [112] 1 2 2 1 1 2 1 1 2 1 2 1 1 2 1 1 1 2 1 2 2 1 1 2 2 1 1 1 1 2 2 1 1 2 1 1 1
## [149] 1 2 1 1 1 2 1 1 2 2 1 1 1 1 2 1 2 1 2 1 2 1 1 1 2 1 1 2 1 1 2 1 2 1 1 1 1
## [186] 2 2 2 1 1 1 2 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 2 2 2 1 1 1 1 2 2 2 2
## [223] 2 1 1 1 1 1 2 1 1 2 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 1 2 1 1 2 1 1 1 2 1 1 2
## [260] 1 1 1 1 1 2 2 2 2 2 1 2 2 1 1 2 2 1 1 1 1 2 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1
## [297] 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 2 2 2 1 1 2 2 1 2 1 1 1 1 2 1
## [334] 1 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 1 1 1 2 1 1 1 1 1 1 2 2 1 2 1 1 2 2 1 1 2
## [371] 1 1 1 1 1 1 1 2 1 2 1 1 2 2 1 2 1 2 2 1 1 2 2 1 1 2 1 2 2 1 1 1 1 1 1 2 1
## [408] 1 2 2 1 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 2 2 1 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1
## [445] 2 1 1 1 2 2 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 2 1 2 1 1 2 1 2 1 2 1 2 1 2 1 2
## [482] 1 2 1 1 1 2 1 1 1 2 2 1 1 2 1 1 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 2 1
## [519] 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 2 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 2
## [556] 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 2 1 2 2 1 1 1 1 1 1 2 2 1 2 2 1
## [593] 1 1 1 1 1 1 2 1 2 2 1 1 2 1 1 2 2 2 2 2 1 1 2 1 2 2 1 1 1 2 1 2 1 1 1 1 1
## [630] 2 2 1 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 2 2 1 2
## [667] 2 1 2 1 1 1 2 1 2 1 1 2 1 1 1 1 1 1 2 1 1 2 2 2 1 2 1 1 2 1 1 2 1 1 1 1 1
## [704] 1 1 1 2 1 2 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 2 1 2 2 1 2 1 1 2 1 1 1 1 1 1 2
## [741] 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 2 1 2 2 1 2 2 1 1 2 2 1 1 2 1 2
## [778] 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 2 2 1 2 2 2 2 2 1 2 2 1 1 2 2 1 1 1
## [815] 2 1 2 1 1 1 1 2 2 2 2 1 1 1 2 2 1 2 1 2 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 2 1
## [852] 1 1 1 1 2 2 1 1 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1
## [889] 1 2 1 2 2 1 1 2 2 1 1 1 1 1 1 1 1 2 2 2 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 2
## [926] 1 2 2 1 2 1 1 2 1 2 2 2 2 2 1 2 1 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1 2
## [963] 1 2 2 1 1 1 1 1 2 1 2 2 2 1 1 1 2 1 1 1 1 1 2 2 1 2 1 2 2 2 2 1 1 2 1 1 1
## [1000] 1 1 1 2 1 1 2 2 1 1 2 1 2 2 1 1 2 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 1 1 1 2 2
## [1037] 2 2 2 2 2 1 1 2 1 2 1 2 1 1 1 2 1 2 1 1 2 1 2 2 1 2 2 1 1 1 1 1 1 2 1 1 1
## [1074] 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 2 1 2 2 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 2
## [1111] 1 2 2 2 1 1 1 2 2 1 2 2 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 2 1 1 1 2 2 1 1
## [1148] 2 1 1 1 1 1 1 1 1 1 1 2 1 2 2 1 2 1 2 1 1 1 1 1 1 1 2 2 1 1 2 2 2 2 1 1 1
## [1185] 1 1 2 2 1 1 1 1 2 1 2 2 2 2 2 2 1 1 2 1 1 2 1 1 1 1 2 1 1 1 2 1 2 1 1 1 2
## [1222] 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 2 1 2 2 1 1 1 2 2 2 1 2 1 2 1 1 1 1 2 2 1 1
## [1259] 1 1 1 1 2 1 1 2 2 1 1 1 2 2 2 1 2 1 2 1 2 1 2 1 1 1 2 1 1 1 2 1 2 1 2 1 1
## [1296] 1 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 1 2 1 2 1 1 2 1 2 1 2 1 1 2 1 2 1 1 1
## [1333] 1 1 2 1 2 2 1 1 1 2 1 2 1 1 2 2 2 1 2 2 1 1 1 2 1 1 1 2 1 2 1 1 1 2 1 1 2
## [1370] 1 1 1 1 1 1 1 2 1 2 1 1 2 1 2 2 2 1 2 2 2 1 2 1 2 1 1 2 2 2 2 2 1 2 1 1 2
## [1407] 1 1 2 1 2 2 1 1 2 1 2 2 1 2 2 1 2 1 1 2 1 1 1 1 2 1 2 2 1 2 2 2 1 1 2 1 1
## [1444] 2 2 2 1 1 2 1 2 1 2 1 1 1 2 2 1 1 1 2 2 1 1 1 1 1 2 1 1 2 1 2 2 2 1 2 1 1
## [1481] 2 2 1 1 2 1 2 1 1 1 1 2 2 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 2 2 2 1
## [1518] 1 1 1 2 1 2 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 2 2 1 1 2 1 1 1 1 1 2 1 2 1 1
## [1555] 2 1 1 1 1 1 1 1 2 2 1 1 1 2 2 1 1 2 1 1 1 2 2 2 2 2 1 1 1 2 1 2 1 1 1 1 1
## [1592] 2 1 1 2 1 2 1 1 2 1 1 1 2 2 1 1 2 2 1 1 1 1 1 2 1 1 1 1 1 2 2 1 2 2 1 2 1
## [1629] 1 2 2 1 1 2 1 1 1 2 1 1 1 2 1 1 1 2 1 1 1 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 2
## [1666] 1 1 1 1 1 2 1 2 1 2 1 1 2 1 2 1 1 2 2 2 1 2 1 2 1 1 2 1 1 1 2 2 1 2 2 2 1
## [1703] 2 1 2 1 2 2 2 2 2 1 2 2 2 1 2 2 1 1 2 1 1 2 2 1 1 2 1 1 2 2 2 2 2 1 2 1 2
## [1740] 1 2 1 2 1 2 1 1 1 2 1 2 1 1 1 1 2 1 2 1 1 1 2 1 1 1 2 2 2 2 1 1 1 2 2 1 2
## [1777] 2 1 1 2 1 2 1 1 1 2 2 1 2 2 2 1 1 1 2 2 2 1 2 2 1 2 2 1 1 1 1 2 1 2 1 2 1
## [1814] 1 1 2 1 1 1 1 1 2 2 2 1 1 2 2 1 1 1 1 2 2 2 1 2 1 1 1 2 2 2 1 1 2 1 1 1 2
## [1851] 2 1 2 1 2 2 1 2 1 1 2 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 2 2 1 1 1 2 1 1 2 1 1
## [1888] 2 2 2 1 1 2 2 1 1 1 2 1 2 1 1 2 2 2 2 1 2 1 2 1 2 1 1 2 1 1 2 2 1 2 1 1 1
## [1925] 1 1 1 1 1 2 2 2 1 2 1 1 2 2 2 2 1 1 2 1 2 2 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1
## [1962] 1 1 1 1 2 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 1 2 1 1 1 2 1 1 1
## [1999] 1 2 1 2 2 1 1 1 1 2 2 1 1 2 1 1 1 2 2 1 2 1 2 2 1 2 1 1 1 1 2 1 2 1 1 1 1
## [2036] 1 1 2 1 1 1 1 1 1 2 1 1 1 2 1 2 1 1 1 1 2 1 2 1 2 1 2 1 1 1 2 1 1 1 2 1 1
## [2073] 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 2 2 2 1 1 1 2 1 2
## [2110] 1 2 1 1 1 2 2 1 1 2 1 2 2 1 2 2 2 1 1 1 1 2 2 2 1 1 1 1 2 1 2 2 2 1 1 2 1
## [2147] 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 2 1 1 1 1
## [2184] 1 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 1 2 1 2 2 1 1 2 1 1 1 1 1 1 1 2 1
## [2221] 2 2 1 2 2 2 2 1 1 1 1 1 2 2 1 2 2 1 1 2 1 2 1 1 1 1 1 1 2 2 1 1 1 2 1 2 2
## [2258] 2 1 2 1 2 1 1 2 1 2 1 2 1 2 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 2 2 1 2 2 1 1 2
## [2295] 2 1 1 1 2 1 1 2 1 1 1 1 2 1 1 2 2 1 2 2 1 1 1 1 1 1 2 1 2 1 1 2 1 1 2 1 1
## [2332] 1 1 2 1 1 2 1 1 1 1 2 1 2 2 2 2 1 1 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1
## [2369] 1 1 2 1 1 2 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 2 1 1 1 1 2 2 1
## [2406] 1 2 2 2 2 2 2 1 1 2 1 1 1 2 2 2 1 1 2 1 2 1 2 2 1 2 1 2 2 2 1 2 2 2 1 2 2
## [2443] 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 2 2 2 1 1 1 2 1 1 1 1 2 1 2 1 2 1 1 1 1 2
## [2480] 2 2 1 2 2 2 2 2 2 1 1 2 2 1 1 1 1 1 2 2 1 1 2 2 1 1 1 2 1 2 1 1 2 1 2 1 2
## [2517] 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 2 1 2 2 1 2 1 1 1 1 1 2
## [2554] 1 1 2 2 2 1 2 2 1 2 1 1 1 2 1 1 2 2 2 2 1 1 2 1 1 1 1 2 2 1 1 2 1 1 1 1 1
## [2591] 1 2 2 1 2 2 2 1 2 2 2 1 2 1 1 2 1 2 2 2 2 2 2 2 2 1 1 1 2 1 2 2 2 2 1 1 1
## [2628] 1 2 1 1 2 2 2 2 2 1 2 2 1 1 1 2 1 2 1 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1 1 2 2
## [2665] 2 2 1 2 2 2 2 1 2 1 1 1 1 2 1 2 2 2 1 1 1 1 1 2 1 1 1 1 2 2 1 2 1 2 2 1 1
## [2702] 1 1 2 1 2 2 2 2 1 2 1 1 1 2 1 1 1 1 1 2 2 1 2 2 2 1 2 1 1 1 1 1 2 1 1 1 1
## [2739] 2 1 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 1
## [2776] 2 2 1 2 2 1 1 2 1 2 2 2 1 2 2 2 1 1 2 1 2 1 1 1 1 1 2 1 1 2 1 1 1 2 1 2 1
## [2813] 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 1 1 1 2 1 1 1 1 2 2 2
## [2850] 1 2 1 2 1 1 1 1 1 2 1 2 1 2 2 1 2 1 1 2 1 2 2 1 2 1 1 1 2 1 2 1 1 1 1 2 2
## [2887] 2 1 1 2 2 1 1 1 2 1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 2 2 1 1 2 2 1 1 1 2 1 1 1
## [2924] 1 1 1 2 2 1 2 1 1 1 1 2 1 1 2 1 2 1 2 2 2 2 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1
## [2961] 1 2 1 2 1 1 1 1 2 2 1 1 1 1 2 2 1 2 2 1 1 2 2 1 2 1 1 1 1 1 1 2 1 2 2 2 1
## [2998] 1 1 1 2 1 1 1 2 1 1 2 2 1 1 2 1 1 2 2 2 2 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1
## [3035] 1 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 2 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 1
## [3072] 1 2 2 1 2 1 1 2 1 2 2 1 2 1 1 2 1 2 1 1 1 2 1 2 1 2 1 2 1 1 2 2 1 2 1 2 1
## [3109] 1 2 1 2 1 2 1 2 1 1 2 1 1 1 2 2 2 1 2 2 2 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1
## [3146] 2 1 2 1 2 2 1 1 1 2 1 2 1 2 2 2 2 2 1 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1
## [3183] 1 2 2 2 1 2 2 1 1 1 2 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 2 2 1 2 1 2 1 2 2 2
## [3220] 1 2 2 2 2 1 1 2 1 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 2
## [3257] 1 2 1 1 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 2 2 1 1 1 1 1 1 2 1 2 2 2 2 1 1 1 1
## [3294] 2 1 2 1 2 1 1 2 1 2 2 1 1 1 1 2 1 1 2 1 1 2 1 1 1 2 1 2 2 1 1 2 1 2 1 2 1
## [3331] 2 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 2 1 2 2
## [3368] 1 2 1 2 1 2 2 1 2 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 2 1 1
## [3405] 1 2 1 2 2 1 2 2 2 1 1 2 2 2 1 1 2 2 1 2 2 1 1 1 1 2 1 2 1 1 2 2 1 2 1 2 1
## [3442] 1 1 1 1 1 1 1 1 2 1 2 2 2 2 1 2 2 2 2 2 1 1 1 1 2 2 1 2 1 2 1 1 1 2 2 1 1
## [3479] 1 2 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1
## [3516] 2 1 2 2 1 1 1 2 1 1 2 2 2 1 1 2 2 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
## [3553] 1 1 2 1 1 2 2 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 2 1
## [3590] 1 2 1 1 1 1 2 2 1 1 2 1 1 1 2 2 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 1 2
## [3627] 1 2 1 2 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1
## [3664] 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2 2 1 1 1 1 2 2 1 2 2 1 1 2
## [3701] 1 2 1 2 2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 2 1 1 2 2 1 1 1 1 1 2 2 1 2 2 1 1
## [3738] 1 1 1 2 1 1 1 2 1 1 1 1 1 1 2 1 1 2 1 1 1 2 2 2 1 1 2 2 1 1 1 1 2 1 2 1 2
## [3775] 1 1 1 2 2 1 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 1 2 1 2
## [3812] 1 1 2 2 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 2 2 1 2 1 1 1 1 2 2 1 1 2 1 2 2
## [3849] 2 2 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1 2 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 2
## [3886] 2 1 2 2 2 2 2 2 2 1 1 2 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 2
## [3923] 1 1 2 1 2 2 2 1 2 1 2 2 2 2 1 2 1 2 2 1 2 1 2 1 1 2 1 1 1 1 1 2 1 2 1 1 2
## [3960] 2 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2 1 1 1 1 1 1 2 1 1 1 2
## [3997] 2 2 1 1 1 1 1 1 1 1 2 2 1 2 1 2 2 2 2 1 1 1 1 2 2 1 1 2 1 2 1 1 2 1 1 1 1
## [4034] 2 1 2 2 1 1 2 2 2 1 2 2 1 2 2 1 2 1 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 2 1 1
## [4071] 2 1 1 1 1 2 2 2 2 2 1 2 1 1 1 1 1 1 1 2 1 2 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1
## [4108] 2 2 2 1 2 1 1 2 1 1 1 2 2 2 1 2 1 1 2 1 1 1 2 2 1 1 2 2 1 1 2 1 2 1 2 1 2
## [4145] 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 2 1 1 1 2 1 2 2 2 1 1 2 2
## [4182] 1 1 1 1 1 1 2 2 2 1 1 2 1 2 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 2 2 2 1 1 2 2 1
## [4219] 2 1 2 2 2 1 1 2 1 2 1 1 1 1 2 2 1 1 2 1 2 2 1 1 2 2 2 2 2 2 1 2 1 1 1 2 2
## [4256] 1 1 1 1 2 2 2 2 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 2 1 1 1 2
## [4293] 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2 1 2 1 2 1 2 1 1 1 1 1 2 2
## [4330] 1 1 1 1 2 1 2 1 1 2 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 1 1 2 2 1 2 2 1 1 1 1
## [4367] 1 2 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 1 2 1 1 2 2 2 1 2 1 1 1 2 1 1 2 2 1
## [4404] 1 1 2 1 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1
## [4441] 1 1 2 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 2 1 1 1 1 1 1 1 2 2 1 1 1 1 2 2 1 1 2
## [4478] 2 1 1 2 2 2 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 1
## [4515] 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 2 2 1 1 2 1 1
## [4552] 1 1 1 2 1 1 1 2 1 2 2 1 1 2 1 2 2 1 1 2 1 2 1 1 1 2 2 1 2 2 1 2 1 2 1 1 2
## [4589] 1 1 2 1 2 1 1 1 1 2 2 1 1 1 2 2 1 1 2 2 1 2 1 1 1 1 1 2 1 2 1 1 1 1 2 1 1
## [4626] 2 1 1 2 1 2 2 1 1 2 2 1 1 1 2 1 1 2 1 1 1 1 2 2 1 1 1 2 1 1 1 2 1 2 1 2 2
## [4663] 2 1 1 1 2 1 2 1 2 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 1 1 1 1 2 1
## [4700] 2 1 1 2 1 1 2 2 2 2 1 2 1 2 1 2 2 1 1 1 1 1 2 2 2 2 1 2 1 1 2 1 1 2 1 1 2
## [4737] 2 1 1 2 1 2 2 1 1 2 2 2 2 1 2 1 1 2 1 1 2 2 1 1 1 1 2 1 1 1 1 2 1 2 2 1 2
## [4774] 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 2 2 2 2 1 1 1 1
##
## Within cluster sum of squares by cluster:
## [1] 3451.700 2653.718
## (between_SS / total_SS = 36.5 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
tk = transactions #se crea un nuevo conjunto de datos para mantener el original
tk$label = km$cluster
# Se visualiza el nuevo conjunto de datos
head(tk)
## gender_numeric TotalPrice label
## 1 -0.8960105 -0.8716496 1
## 2 -0.8960105 0.2550500 2
## 3 -0.8960105 1.2565608 2
## 4 -0.8960105 -0.9133793 1
## 5 1.1158261 -0.4126238 1
## 6 1.1158261 -0.4126238 1
#Resultado final
fviz_cluster(km, data = transactions,
palette = c("#2E9FDF", "#00AFBB"),
ellipse.type = "euclid")
En este ejercicio se exploró el conjunto de datos transactions.csv y se prepararon los datos para aplicar el algoritmo de clustering k-means. Se utilizaron los métodos de WSS y Silhuette para calcular el número óptimo de clusters. Dado que estos arrojaron resultados diferentes, se llevaron a cabo dos casos: uno para k = 4 y otro para k = 2.
NOTA: La interpretación de los resultados no se realizó, ya que no era el objetivo principal del sprint.