PCA против t-SNE для визуализации данных: есть ли способ загрузки графиков с помощью t-SNE? - PullRequest
0 голосов
/ 24 января 2020

В прошлом я привык использовать PCA и загружать графики для визуализации данных, используя stats :: prcomp и ggbiplot. Как это:

PCA example

Недавно я познакомился с анализом t-SNE (опоздал к игре здесь), который имеет был революционным в анализе сокращений и изучении закономерностей в данных.

Пока t-SNE собирает в моих данных кластеры, которые PCA не может четко различить guish, недостатком является отсутствие графика загрузки, чтобы понять, какие характеристики c влияют на каждый кластер в пространство.

Есть ли способ с t-SNE, который я могу сформировать какой-то график загрузки? Или есть какие-либо дополнительные методы, связанные с t-SNE, которые можно использовать? Я действительно хотел бы сохранить график t-SNE поверх графика PCA для визуализации определенного набора данных, но без графика загрузки это не так информативно.

Есть идеи? Фиктивные данные ниже:

library(FD)
library(ggbiplot)

# generate random data
a <- sample(x = 1:5, size = 100, replace = TRUE)
b <- sample(x = 1:5, size = 100, replace = TRUE)
c <- sample(x = 1:5, size = 100, replace = TRUE)
d <- sample(x = 1:5, size = 100, replace = TRUE)
e <- sample(x = 1:5, size = 100, replace = TRUE)
f <- sample(x = 1:5, size = 100, replace = TRUE)
g <- sample(x = 1:5, size = 100, replace = TRUE)

# make ordinal
a <- ordered(a, levels = 1:5)
b <- ordered(b, levels = 1:5)
c <- ordered(c, levels = 1:5)
d <- ordered(d, levels = 1:5)
e <- ordered(e, levels = 1:5)
f <- ordered(f, levels = 1:5)
g <- ordered(g, levels = 1:5)

#as dataframe
table <- as.data.frame(cbind(a,b,c,d,e,f,g))


#PCA
pca <- prcomp(table,center = TRUE,scale. = TRUE)
ggbiplot(pca) 

#t-SNE
gower_dist <- daisy(table, metric = "gower")

tsne_obj <- Rtsne(gower_dist, is_distance = TRUE)

tsne_data <- tsne_obj$Y %>%
  data.frame() %>%
  setNames(c("X", "Y")) 

ggplot(aes(x = X, y = Y), data = tsne_data) +
  geom_point()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...