
library(ggplot2)
library(readr)
library(Rtsne)

set.seed(1)
num_rows_sample <- 10000

train <- read_csv("../input/train.csv")

train_sample = train[sample(1:nrow(train), size = num_rows_sample),]

tsne <- Rtsne(as.matrix(train_sample[,-1]), check_duplicates = FALSE,
              pca = TRUE, perplexity=30, theta=0.5, dims=2)

embedding <- as.data.frame(tsne$Y)
embedding$Digit <- as.factor(train_sample[,1])

p <- ggplot(embedding, aes(x=V1, y=V2, color=Digit)) +
     geom_point() +
     theme_light(base_size=20) +
     theme(strip.background = element_blank(),
           strip.text.x     = element_blank(),
           axis.text.x      = element_blank(),
           axis.text.y      = element_blank(),
           axis.ticks       = element_blank(),
           axis.line        = element_blank(),
           panel.border     = element_blank(),
           legend.position  = "top") +
     xlab("") + ylab("")

ggsave("tsne.png", p, width=10, height=10, units="in")