GithubHelp home page GithubHelp logo

Comments (4)

Yangxiaojun1230 avatar Yangxiaojun1230 commented on May 23, 2024

Hi Pavlin,
Yep, I want to extend openTSNE to the second scenario which you mentioned above.
My immature idea is that through input a id list and set the corresponding point coordinates in embedding space to fixed value. But I am not sure if it is feasible, since it will impact the scale of the total embedding space.

from opentsne.

pavlin-policar avatar pavlin-policar commented on May 23, 2024

The most straightforward way to achieve this would probably be to mask out the gradients for these points, effectively fixing them in place. Most likely, you'd just need to zero out the update for the given rows here.

But you are correct in that you'd now be changing the scale of the embedding which can be problematic. For instance, if you use an initialization that isn't rescaled to something tiny, (hence the reason for our initialization.rescale function, the optimization doesn't work. The span (x_max -x_min) tends to increase during optimization. You'd likely need to tinker with the optimization parameters to get this to work properly.

I'm interested in what your use case is here? The use-case I was thinking of previously was to allow user intervention and allow the user to steer the embedding, but I've never really been convinced of the practical uses of that.

from opentsne.

Yangxiaojun1230 avatar Yangxiaojun1230 commented on May 23, 2024

The use-case I was thinking of previously was to allow user intervention and allow the user to steer the embedding, but I've never really been convinced of the practical uses of that

Hi Pavlin,
Thanks for your advice. I will try on my case and see the results.
My case is layout planning in briefly, for instance, we have million of nodes(machines) need to be placed in a specified area, each node has connectivities with other nodes and has self-weight. We will encode these nodes into a high dimension space through a neural network , and then use dimension reduction method to a 2D plane. For some basic reasons, some machines should be placed on certain positions.

from opentsne.

pavlin-policar avatar pavlin-policar commented on May 23, 2024

I see. Yes, like I said, the masking approach would probably be the easiest way to do this, but you'll likely need to tinker around with the optimization parameters. Let me know how it goes!

I'll close this for the time being, since there is nothing actionable I can really do here, but if you need any more help or have any questions later on, please feel free to ask them here.

from opentsne.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.