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
