
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=