Diagrama de Dispersión

library(ggplot2)

#Cargar datos
EmojisFood <- read.csv("~/Maestría/Visualización/ReduccionDim/EmojisFood.csv")

ddipersion = ggplot(EmojisFood,aes(EmojisFood$Calories..kcal.,EmojisFood$Carbohydrates..g.))

ddipersion = ddipersion + geom_point() + geom_label(aes(label=EmojisFood$name))

ddipersion = ddipersion + labs(title = "Relacion de carbohidratos y calorias",subtitle = "Emjemplo de diagrama de dispersion", x = "Calorias", y = "Carbohidratos")

ddipersion

Redución de dimensiones con MDS

#Normalización de datos

datosNormalizados = scale(EmojisFood[,3:35])
rownames(datosNormalizados) = EmojisFood$name

#Calculo de distancias
distancias = dist(datosNormalizados)

# Aplicamos MDS

dimReducidas = cmdscale(d=distancias, k = 2)

#Convertir a data frame 

dimReducidas = as.data.frame(dimReducidas)

#Graficamos

mdsGrafica = ggplot(dimReducidas, aes(V1,V2))
mdsGrafica = mdsGrafica + geom_point()
mdsGrafica = mdsGrafica + geom_text(aes(label = rownames(dimReducidas)), angle = 45 , size = 3, vjust = 1.1, check_overlap = TRUE)
mdsGrafica = mdsGrafica + labs(title = "Reducción de dimensiones con MDS", subtitle = "Ejemplo MDS", x = " Dimesión 1", y = "Dimension 2")
mdsGrafica = mdsGrafica + geom_density2d()
mdsGrafica 

Reduccion de dimensiones con tSNE

#install.packages("tsne")
library(tsne)

#Aplicamos tSNE
tsneReducidas = tsne(distancias, k=2,perplexity = 5, max_iter = 1000)

#Convertir a dataframe
tsneReducidas = as.data.frame(tsneReducidas)

tsneGrafica = ggplot(tsneReducidas, aes(V1,V2))
tsneGrafica = tsneGrafica + geom_point()
tsneGrafica = tsneGrafica + geom_text(aes(label = rownames(dimReducidas)), angle = 45 , size = 3, vjust = 1.1, check_overlap = TRUE)
tsneGrafica = tsneGrafica + labs(title = "Reducción de dimensiones con tSNE", subtitle = "Ejemplo tSNE", x = " Dimesión 1", y = "Dimension 2")
tsneGrafica = tsneGrafica + geom_density2d()
tsneGrafica