Comments (4)
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.
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.
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.
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)
- `latest` version of ReadTheDocs not rendering Python code HOT 4
- Switching spectral initialization to sklean.manifold.SpectralEmbeddings HOT 14
- Adding tiny amount of noise to PCA/spectral init to prevent points from overlapping
- Tutorials do not show ipynb code HOT 2
- Bug: running optimize() multiple times produces different result compared to running it once HOT 3
- Failed to install from source HOT 3
- Barnes-Hut optimization with the default learning rate collapses on small datasets HOT 4
- Tests fail: ImportError: attempted relative import with no known parent package HOT 7
- Negative reported KL divergence for dof>1 HOT 4
- Unable to use custom callable metric HOT 2
- process crashes when /tmp gets full HOT 2
- Question about SGD method used HOT 2
- [Windows] save TSNEEmbedding to binary, Directory error HOT 5
- Test failure on i386 HOT 9
- Cannot install on Mac M1 HOT 1
- `utils` import error in example notebooks HOT 1
- Problem with data from CSV file HOT 7
- Question on initialization HOT 4
- import errer HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentsne.