I'm currently trying to generate a regression-based predictor for a 2D t-SNE embedding. I have a matrix of data 10000 features x 400 observations and a resulting t-SNE x y coordinate table. I want to train a regression model to predict any new t-SNE x y coordinates from new observations of the 10k features. But I'm unsure of which regression approach to use. I am working in R.
The impetus from this comes from Laurens van der Maaten's own take on the subject:
> 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.
I've come across XGBboost (similar to Python XGBRegressor), Random Forest, Multilayer perceptron, but I'm sure there are others.
There are various examples of R code so I won't post specifics. However many of the examples I've seen require an vector of factors or numerics rather than a x,y coord table as part of the input therefore this is currently prohibitive to my intended use.
So the regression should be able to do the following:
Train on 10000 x 400 matrix and the resulting 2D tSNE x,y coords
Test on new 10000 x n matrix and provide new 2D tSNE x,y coords
Any and all input is welcome and appreciated. I do appreciate that t-SNE is non-parametric and doesn't preserve local structure etc etc. I'm usually the first to bring these up. I know that I can also just run t-SNE on the full dataset after adding new samples. But I have this task to do the above...
The impetus from this comes from Laurens van der Maaten's own take on the subject:
> 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.
I've come across XGBboost (similar to Python XGBRegressor), Random Forest, Multilayer perceptron, but I'm sure there are others.
There are various examples of R code so I won't post specifics. However many of the examples I've seen require an vector of factors or numerics rather than a x,y coord table as part of the input therefore this is currently prohibitive to my intended use.
So the regression should be able to do the following:
Train on 10000 x 400 matrix and the resulting 2D tSNE x,y coords
Test on new 10000 x n matrix and provide new 2D tSNE x,y coords
Any and all input is welcome and appreciated. I do appreciate that t-SNE is non-parametric and doesn't preserve local structure etc etc. I'm usually the first to bring these up. I know that I can also just run t-SNE on the full dataset after adding new samples. But I have this task to do the above...
