pavlin-policar/openTSNE

Better support for large late exaggeration

dkobak opened this issue · 1 comments

I am often using exaggeration argument of TSNE(). It works flawlessly when the argument is less than 12:

TSNE(exaggeration=4).fit(X)

But if I want to use a value above 12, e.g. 24 (this rarely happens but I ran into this situation just now), then I am doing smth like this:

TSNE(exaggeration=24, early_exaggeration=24, learning_rate = X.shape[0]/24).fit(X)

which is a little annoying, and cumbersome to communicate to practitioners who are less familiar with inner working of t-SNE. I would love to be able to simply run

TSNE(exaggeration=24).fit(X)

I am wondering if we can somehow change the default behaviour, so that this works by default. For example, we could have early_exaggeration='auto' by default, so that auto defaults to 12 unless exaggeration is above 12. And set the "auto" learning rate accordingly. This is admittedly an edge use case... But I don't really see downsides. What do you think?

I see, yes, this makes sense. I think the "auto" route is the way to go. It is an unusual use-case, but I don't really see any downside to this approach.