【发布时间】:2017-09-08 17:31:47
【问题描述】:
目标:我的目标是在 R 中使用 t-SNE(t 分布随机邻域嵌入)来降低我的训练数据的维度(使用 N 个观察值和 K 个变量,其中 K>>N) 并随后旨在为我的测试数据提出 t-SNE 表示。
示例:假设我的目标是将 K 变量减少到 D=2 维(通常,D=2 或 D =3 对于 t-SNE)。 R包有两个:Rtsne和tsne,我这里用的是前者。
# load packages
library(Rtsne)
# Generate Training Data: random standard normal matrix with J=400 variables and N=100 observations
x.train <- matrix(nrom(n=40000, mean=0, sd=1), nrow=100, ncol=400)
# Generate Test Data: random standard normal vector with N=1 observation for J=400 variables
x.test <- rnorm(n=400, mean=0, sd=1)
# perform t-SNE
set.seed(1)
fit.tsne <- Rtsne(X=x.train, dims=2)
其中命令fit.tsne$Y 将返回包含数据的t-SNE 表示的(100x2) 维对象;也可以通过plot(fit.tsne$Y) 绘制。
问题:现在,我正在寻找一个函数,该函数基于经过训练的 t-SNE 模型为我的测试数据返回维度 (1x2) 的预测 pred。类似的,
# The function I am looking for (but doesn't exist yet):
pred <- predict(object=fit.tsne, newdata=x.test)
(如何)这可能吗?你能帮我解决这个问题吗?
【问题讨论】:
标签: r machine-learning dimensionality-reduction