gpt4 book ai didi

r - R 中的 t-SNE 预测

转载 作者:行者123 更新时间:2023-11-30 08:23:24 32 4
gpt4 key购买 nike

目标:我的目标是在 R 中使用 t-SNE(t 分布随机邻域嵌入)对我的训练数据进行降维(具有 N 个观察值和 >K 个变量,其中 K>>N),随后旨在为我的测试数据提供 t-SNE 表示。

示例:假设我的目标是将 K 个变量减少到 D=2 维度(通常是 D=2D =3 对于 t-SNE)。有两个 R 包:Rtsnetsne,而我在这里使用前者。

# 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)

(如何)这可能吗?你能帮我解决这个问题吗?

最佳答案

来自作者本人(https://lvdmaaten.github.io/tsne/):

Once I have a t-SNE map, how can I embed incoming test points in that map?

t-SNE learns a non-parametric mapping, which means that it does not learn an explicit function that maps data from the input space to the map. Therefore, it is not possible to embed test points in an existing map (although you could re-run t-SNE on the full dataset). A potential approach to deal with this would be to train a multivariate regressor to predict the map location from the input data. Alternatively, you could also make such a regressor minimize the t-SNE loss directly, which is what I did in this paper (https://lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf).

所以你不能直接应用新的数据点。但是,您可以在数据和嵌入维度之间拟合多元回归模型。作者认识到这是该方法的局限性,并建议通过这种方式来解决它。

关于r - R 中的 t-SNE 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377941/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com