Agrupamiento Jerárquico

# Importar el dataset
alimentos <- read.csv("EmojisFood.csv")

# nombrar las filas con los nombres de alimentos
row.names(alimentos) <- alimentos$name

# summary(alimentos)

# Normalizar todas las columnas
alimentos[,c(3:35)] <-scale(alimentos[,c(3:35)])

# Calcular la distancia entre los alimentos
distancias <- dist(alimentos[,c(3:35)], method = "euclidean")

# convertir las distancias a una matriz
matriz <- as.matrix(distancias)

# Realizar el agrupamiento jerárquico o  hierarchical clustering
dendograma <- hclust(distancias, method ="ward.D2")

# Graficar el dendrograma
#install.packages("ggdendro")
library(ggdendro)
library(ggplot2)

dendroGrafica <- ggdendrogram(dendograma, rotate = FALSE, size = 2)
dendroGrafica

Multidimensionamiento Escalar

# Calcular el MDS
data2D <- cmdscale(distancias, k = 2)

# convertir a dataframe
datosPlot <- as.data.frame(data2D)

plotMDS <- ggplot(datosPlot, aes(V1, V2))
plotMDS <- plotMDS + geom_point(size=1, alpha=0.2)
plotMDS <- plotMDS + geom_text(aes(label = row.names(datosPlot)), vjust = -0.5, size=2, angle=45,check_overlap = FALSE)
plotMDS <- plotMDS + geom_density2d(color="blue")
plotMDS

T-SNE

library(tsne)

tsnePlot <- tsne(distancias, perplexity=5, max_iter=4000)

tsneDF <- as.data.frame(tsnePlot)

plotTSNE <- ggplot(tsneDF, aes(V1, V2))
plotTSNE <- plotTSNE + geom_point(size=1, alpha=0.2)
plotTSNE <- plotTSNE + geom_text(aes(label = row.names(datosPlot)), vjust = -0.5, size=2, angle=45,check_overlap = FALSE)
plotTSNE <- plotTSNE + geom_density2d(color="red")
plotTSNE

library(emojifont)
plotTSNE <- plotTSNE + geom_text(aes(V1,V2,label=emoji(row.names(datosPlot))),family="EmojiOne", size = 5, vjust = 1.1)
plotTSNE