Contexto

El análisis determinó las cantidades de 13 componentes que se encuentran en cada uno de los tres tipos de vino.

Descripción de las variables:

Alcohol: El contenido de alcohol en el vino, que se refiere a la cantidad de etanol presente.
Ácido Málico (Malic Acid): Un ácido orgánico que contribuye a la acidez del vino.
Ceniza (Ash): La cantidad de residuo mineral después de la combustión, que puede incluir minerales presentes en el suelo de los viñedos.
Alcalinidad de la Ceniza (Ash_Alcalinity): La alcalinidad de la ceniza, que puede afectar la percepción del sabor del vino.
Magnesio: Cantidad del mineral Magnesio. Este puede influir en el sabor y la estructura del vino.
Fenoles Totales (Total Phenols): Compuestos químicos que incluyen antioxidantes y otros compuestos beneficiosos para la salud presentes en la piel y semillas de las uvas.
Flavonoides: Otro grupo de compuestos antioxidantes que contribuyen a la estructura y color del vino.
Nonflavanoid Phenols: Compuestos que contribuyen al sabor y astringencia del vino, no son flavonoides.
Proanthocyanins: Compuestos fenólicos que aportan astringencia y antioxidantes al vino, presentes en piel y semillas de uvas.
Color Intensity: Profundidad del color del vino, indica concentración de pigmentos.
Hue: Tonalidad del color del vino, muestra matices como rojo, morado o naranja.
OD280: Medida de absorbancia óptica, relacionada con la concentración de compuestos como los fenoles.
Proline: Aminoácido presente en el vino, indicativo de la madurez de uvas y fermentación.

Fuente: Wine dataet

Paso 1 cargar liberias

#install.packages("cluster")
library(cluster)
#install.packages("ggplot2")
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
#install.packages("data.table")
library(data.table)
## Warning: package 'data.table' was built under R version 4.3.2
#install.packages("factoextra")
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa

Paso 2 Crear data frame

df <- read.csv("/Users/lightedit/Documents/TEC SEMESTRE 6.1/M2/R/Ejercicio de vinos/wine.csv")
summary(df)
##     Alcohol        Malic_Acid         Ash         Ash_Alcanity  
##  Min.   :11.03   Min.   :0.740   Min.   :1.360   Min.   :10.60  
##  1st Qu.:12.36   1st Qu.:1.603   1st Qu.:2.210   1st Qu.:17.20  
##  Median :13.05   Median :1.865   Median :2.360   Median :19.50  
##  Mean   :13.00   Mean   :2.336   Mean   :2.367   Mean   :19.49  
##  3rd Qu.:13.68   3rd Qu.:3.083   3rd Qu.:2.558   3rd Qu.:21.50  
##  Max.   :14.83   Max.   :5.800   Max.   :3.230   Max.   :30.00  
##    Magnesium      Total_Phenols     Flavanoids    Nonflavanoid_Phenols
##  Min.   : 70.00   Min.   :0.980   Min.   :0.340   Min.   :0.1300      
##  1st Qu.: 88.00   1st Qu.:1.742   1st Qu.:1.205   1st Qu.:0.2700      
##  Median : 98.00   Median :2.355   Median :2.135   Median :0.3400      
##  Mean   : 99.74   Mean   :2.295   Mean   :2.029   Mean   :0.3619      
##  3rd Qu.:107.00   3rd Qu.:2.800   3rd Qu.:2.875   3rd Qu.:0.4375      
##  Max.   :162.00   Max.   :3.880   Max.   :5.080   Max.   :0.6600      
##  Proanthocyanins Color_Intensity       Hue             OD280      
##  Min.   :0.410   Min.   : 1.280   Min.   :0.4800   Min.   :1.270  
##  1st Qu.:1.250   1st Qu.: 3.220   1st Qu.:0.7825   1st Qu.:1.938  
##  Median :1.555   Median : 4.690   Median :0.9650   Median :2.780  
##  Mean   :1.591   Mean   : 5.058   Mean   :0.9574   Mean   :2.612  
##  3rd Qu.:1.950   3rd Qu.: 6.200   3rd Qu.:1.1200   3rd Qu.:3.170  
##  Max.   :3.580   Max.   :13.000   Max.   :1.7100   Max.   :4.000  
##     Proline      
##  Min.   : 278.0  
##  1st Qu.: 500.5  
##  Median : 673.5  
##  Mean   : 746.9  
##  3rd Qu.: 985.0  
##  Max.   :1680.0

Paso 3 Cantidad de grupos

df <- scale(df)

grupos  <- 4

Paso 4 Clustering

segmentos <- kmeans(df,grupos)
# segmentos

Paso 5. Asignar el grupo al que pertenece cada obersvación

asig <- cbind(df, cluster = segmentos$cluster)
# asig

Paso 6 graficar clusters

fviz_cluster(segmentos, data = df)

Paso 7 optimizar la cantidad de grupos

La cantidad optmia de grupos corresponde al punto mas alto de la siguiente grafica

set.seed(123)
opt <- clusGap(df, FUN = kmeans, nstart=1, K.max=8)
plot(opt, xlab="Numero de clusters k")

Modificar el numero de clusters

df <- read.csv("/Users/lightedit/Documents/TEC SEMESTRE 6.1/M2/R/Ejercicio de vinos/wine.csv")
df <- scale(df)

grupos  <- 3

segmentos <- kmeans(df,grupos)

asig <- cbind(df, cluster = segmentos$cluster)
fviz_cluster(segmentos, data = df)

asig <- as.data.frame(asig)
comp <- aggregate(asig, by=list(asig$cluster), FUN=mean)
# comp

Conclusión

La segmentación o clusters es un algoritmo útil para las empresas que desean clasificar a sus clientes y dirigir campañas de marketing más enfocadas y especializadas. Más información: R for Data Science (2ed)

LS0tCnRpdGxlOiAiU2VnbWVudGFjacOzbiBkZSBWaW5vIgphdXRob3I6ICJHaWxiZXJ0byBNZW5jaGFjYSBBMDExNzc4OTkiCmRhdGU6ICIyMDI0LTAyLTE5IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6IHNpbXBsZXgKICAgIAotLS0KIVtdKC9Vc2Vycy9saWdodGVkaXQvRG9jdW1lbnRzL1RFQyBTRU1FU1RSRSA2LjEvTTIvUi9FamVyY2ljaW8gZGUgdmlub3MvZG93bmxvYWQuanBnKQoKIyBDb250ZXh0bwpFbCBhbsOhbGlzaXMgZGV0ZXJtaW7DsyBsYXMgY2FudGlkYWRlcyBkZSAxMyBjb21wb25lbnRlcyBxdWUgc2UgZW5jdWVudHJhbiBlbiBjYWRhIHVubyBkZSBsb3MgdHJlcyB0aXBvcyBkZSB2aW5vLgoKRGVzY3JpcGNpw7NuIGRlIGxhcyB2YXJpYWJsZXM6CgpBbGNvaG9sOiBFbCBjb250ZW5pZG8gZGUgYWxjb2hvbCBlbiBlbCB2aW5vLCBxdWUgc2UgcmVmaWVyZSBhIGxhIGNhbnRpZGFkIGRlIGV0YW5vbCBwcmVzZW50ZS4gIArDgWNpZG8gTcOhbGljbyAoTWFsaWMgQWNpZCk6IFVuIMOhY2lkbyBvcmfDoW5pY28gcXVlIGNvbnRyaWJ1eWUgYSBsYSBhY2lkZXogZGVsIHZpbm8uICAKQ2VuaXphIChBc2gpOiBMYSBjYW50aWRhZCBkZSByZXNpZHVvIG1pbmVyYWwgZGVzcHXDqXMgZGUgbGEgY29tYnVzdGnDs24sIHF1ZSBwdWVkZSBpbmNsdWlyIG1pbmVyYWxlcyBwcmVzZW50ZXMgZW4gZWwgc3VlbG8gZGUgbG9zIHZpw7FlZG9zLiAgCkFsY2FsaW5pZGFkIGRlIGxhIENlbml6YSAoQXNoX0FsY2FsaW5pdHkpOiBMYSBhbGNhbGluaWRhZCBkZSBsYSBjZW5pemEsIHF1ZSBwdWVkZSBhZmVjdGFyIGxhIHBlcmNlcGNpw7NuIGRlbCBzYWJvciBkZWwgdmluby4gIApNYWduZXNpbzogQ2FudGlkYWQgZGVsIG1pbmVyYWwgTWFnbmVzaW8uIEVzdGUgcHVlZGUgaW5mbHVpciBlbiBlbCBzYWJvciB5IGxhIGVzdHJ1Y3R1cmEgZGVsIHZpbm8uICAKRmVub2xlcyBUb3RhbGVzIChUb3RhbCBQaGVub2xzKTogQ29tcHVlc3RvcyBxdcOtbWljb3MgcXVlIGluY2x1eWVuIGFudGlveGlkYW50ZXMgeSBvdHJvcyBjb21wdWVzdG9zIGJlbmVmaWNpb3NvcyBwYXJhIGxhIHNhbHVkIHByZXNlbnRlcyBlbiBsYSBwaWVsIHkgc2VtaWxsYXMgZGUgbGFzIHV2YXMuICAKRmxhdm9ub2lkZXM6IE90cm8gZ3J1cG8gZGUgY29tcHVlc3RvcyBhbnRpb3hpZGFudGVzIHF1ZSBjb250cmlidXllbiBhIGxhIGVzdHJ1Y3R1cmEgeSBjb2xvciBkZWwgdmluby4gIApOb25mbGF2YW5vaWQgUGhlbm9sczogQ29tcHVlc3RvcyBxdWUgY29udHJpYnV5ZW4gYWwgc2Fib3IgeSBhc3RyaW5nZW5jaWEgZGVsIHZpbm8sIG5vIHNvbiBmbGF2b25vaWRlcy4gIApQcm9hbnRob2N5YW5pbnM6IENvbXB1ZXN0b3MgZmVuw7NsaWNvcyBxdWUgYXBvcnRhbiBhc3RyaW5nZW5jaWEgeSBhbnRpb3hpZGFudGVzIGFsIHZpbm8sIHByZXNlbnRlcyBlbiBwaWVsIHkgc2VtaWxsYXMgZGUgdXZhcy4gIApDb2xvciBJbnRlbnNpdHk6IFByb2Z1bmRpZGFkIGRlbCBjb2xvciBkZWwgdmlubywgaW5kaWNhIGNvbmNlbnRyYWNpw7NuIGRlIHBpZ21lbnRvcy4gIApIdWU6IFRvbmFsaWRhZCBkZWwgY29sb3IgZGVsIHZpbm8sIG11ZXN0cmEgbWF0aWNlcyBjb21vIHJvam8sIG1vcmFkbyBvIG5hcmFuamEuICAKT0QyODA6IE1lZGlkYSBkZSBhYnNvcmJhbmNpYSDDs3B0aWNhLCByZWxhY2lvbmFkYSBjb24gbGEgY29uY2VudHJhY2nDs24gZGUgY29tcHVlc3RvcyBjb21vIGxvcyBmZW5vbGVzLiAgClByb2xpbmU6IEFtaW5vw6FjaWRvIHByZXNlbnRlIGVuIGVsIHZpbm8sIGluZGljYXRpdm8gZGUgbGEgbWFkdXJleiBkZSB1dmFzIHkgZmVybWVudGFjacOzbi4gIAoKRnVlbnRlOgpbV2luZSBkYXRhZXRdKGh0dHBzOi8vc2VhcmNoLnItcHJvamVjdC5vcmcvQ1JBTi9yZWZtYW5zL0hEY2xhc3NpZi9odG1sL3dpbmUuaHRtbCkKCiMgUGFzbyAxIGNhcmdhciBsaWJlcmlhcwpgYGB7cn0KCiNpbnN0YWxsLnBhY2thZ2VzKCJjbHVzdGVyIikKbGlicmFyeShjbHVzdGVyKQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpCmxpYnJhcnkoZ2dwbG90MikKCiNpbnN0YWxsLnBhY2thZ2VzKCJkYXRhLnRhYmxlIikKbGlicmFyeShkYXRhLnRhYmxlKQoKI2luc3RhbGwucGFja2FnZXMoImZhY3RvZXh0cmEiKQpsaWJyYXJ5KGZhY3RvZXh0cmEpCgpgYGAKCgojIFBhc28gMiBDcmVhciBkYXRhIGZyYW1lCgpgYGB7cn0KZGYgPC0gcmVhZC5jc3YoIi9Vc2Vycy9saWdodGVkaXQvRG9jdW1lbnRzL1RFQyBTRU1FU1RSRSA2LjEvTTIvUi9FamVyY2ljaW8gZGUgdmlub3Mvd2luZS5jc3YiKQoKYGBgCgoKYGBge3J9CnN1bW1hcnkoZGYpCmBgYAoKCgojIFBhc28gMyBDYW50aWRhZCBkZSBncnVwb3MKCmBgYHtyfQpkZiA8LSBzY2FsZShkZikKCmdydXBvcyAgPC0gNAoKYGBgCiMgUGFzbyA0IENsdXN0ZXJpbmcgCgpgYGB7cn0Kc2VnbWVudG9zIDwtIGttZWFucyhkZixncnVwb3MpCiMgc2VnbWVudG9zCmBgYAoKCiMgUGFzbyA1LiBBc2lnbmFyIGVsIGdydXBvIGFsIHF1ZSBwZXJ0ZW5lY2UgY2FkYSBvYmVyc3ZhY2nDs24KCmBgYHtyfQphc2lnIDwtIGNiaW5kKGRmLCBjbHVzdGVyID0gc2VnbWVudG9zJGNsdXN0ZXIpCiMgYXNpZwpgYGAKCgojIFBhc28gNiBncmFmaWNhciBjbHVzdGVycwoKYGBge3J9CmZ2aXpfY2x1c3RlcihzZWdtZW50b3MsIGRhdGEgPSBkZikKCmBgYAoKIyBQYXNvIDcgb3B0aW1pemFyIGxhIGNhbnRpZGFkIGRlIGdydXBvcwpMYSBjYW50aWRhZCBvcHRtaWEgZGUgZ3J1cG9zIGNvcnJlc3BvbmRlIGFsIHB1bnRvIG1hcyBhbHRvIGRlIGxhIHNpZ3VpZW50ZSBncmFmaWNhCgpgYGB7cn0Kc2V0LnNlZWQoMTIzKQpvcHQgPC0gY2x1c0dhcChkZiwgRlVOID0ga21lYW5zLCBuc3RhcnQ9MSwgSy5tYXg9OCkKcGxvdChvcHQsIHhsYWI9Ik51bWVybyBkZSBjbHVzdGVycyBrIikKYGBgCgojIE1vZGlmaWNhciBlbCBudW1lcm8gZGUgY2x1c3RlcnMKYGBge3J9CmRmIDwtIHJlYWQuY3N2KCIvVXNlcnMvbGlnaHRlZGl0L0RvY3VtZW50cy9URUMgU0VNRVNUUkUgNi4xL00yL1IvRWplcmNpY2lvIGRlIHZpbm9zL3dpbmUuY3N2IikKZGYgPC0gc2NhbGUoZGYpCgpncnVwb3MgIDwtIDMKCnNlZ21lbnRvcyA8LSBrbWVhbnMoZGYsZ3J1cG9zKQoKYXNpZyA8LSBjYmluZChkZiwgY2x1c3RlciA9IHNlZ21lbnRvcyRjbHVzdGVyKQpmdml6X2NsdXN0ZXIoc2VnbWVudG9zLCBkYXRhID0gZGYpCgpgYGAKCmBgYHtyfQphc2lnIDwtIGFzLmRhdGEuZnJhbWUoYXNpZykKY29tcCA8LSBhZ2dyZWdhdGUoYXNpZywgYnk9bGlzdChhc2lnJGNsdXN0ZXIpLCBGVU49bWVhbikKIyBjb21wCmBgYAoKCgoKIyBDb25jbHVzacOzbgpMYSBzZWdtZW50YWNpw7NuIG8gY2x1c3RlcnMgZXMgdW4gYWxnb3JpdG1vIMO6dGlsIHBhcmEgbGFzIGVtcHJlc2FzIHF1ZSBkZXNlYW4gY2xhc2lmaWNhciBhIHN1cyBjbGllbnRlcyB5IGRpcmlnaXIgY2FtcGHDsWFzIGRlIG1hcmtldGluZyBtw6FzIGVuZm9jYWRhcyB5IGVzcGVjaWFsaXphZGFzLgpNw6FzIGluZm9ybWFjacOzbjoKW1IgZm9yIERhdGEgU2NpZW5jZSAoMmVkKV0oaHR0cHM6Ly9yNGRzLmhhZC5jby5uei8pCgo=