Question about error of LLE and backtransformation of coordinates
Hi! The errors are quite small compared to the machine precision. As the reduction is also an approximation of the underlying manifold, not an "isotropic" one as well (you can see int he example that red points are less squashed together than blue ones), you won't have a perfect reconstruction either. In a way, if you can reproduce in the reduced space the same distances (or barycenters for LLE) compared the original space, then you can have a perfect reconstruction (but it will still be subject to floating point precision). For the sphere, you can't: take 4 points, can you make the fourth as a barycenter of the other 3? No. That's the error you are seeing. Cheers, Matthieu 2016-06-16 10:12 GMT+01:00 Unger, Jörg <joerg.unger@bam.de>:
I’ve tried the example that is available here
http://scikit-learn.org/stable/auto_examples/manifold/plot_manifold_sphere.h...
These are essentially points on a 3D sphere, so the dimension of the
embedded manifold is two.
I’ve changed the example a little bit to extract the error as well. So
instead of
trans_data = manifold\
.LocallyLinearEmbedding(n_neighbors, 2,
method=method).fit_transform(sphere_data).T
I’ve done something like
solver = manifold.LocallyLinearEmbedding(n_neighbors, dim_y,
method=method)
trans_data = solver.fit_transform(sphere_data).T
error = solver.reconstruction_error_
I would have expected the error to be significant for dim_y=1, since I
can’t reproduce with just a single coordinate the results. For dim_y=2, I expected a significant decrease, and for dim_y=3, I expected to exactly recover the original result.
What I get is (for standard LLE)
dim_y = 1 : error = 1.62031573333e-07
dim_y = 2 : error = 1.79465538543e-06
dim_y = 3 : error = 7.00280676182e-06
Could anyone explain, why I do not get the expected results?
Furthermore, is there an option to retransform the coordinates from the
local dimension to the global dimension? I’m interested in transforming the original global samples to local coordinates (this is done via the transform method), but then I would like to transform samples from coordinates in the embedded space back into the global space.
Best regards,
Jörg F. Unger
What NetFlow Analyzer can do for you? Monitors network bandwidth and
patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity
------------------------------------------------------------------------------ traffic planning
reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381 _______________________________________________ Scikit-learn-general mailing list Scikit-learn-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
-- Information System Engineer, Ph.D. Blog: http://blog.audio-tk.com/ LinkedIn: http://www.linkedin.com/in/matthieubrucher -- Information System Engineer, Ph.D. Blog: http://blog.audio-tk.com/ LinkedIn: http://www.linkedin.com/in/matthieubrucher
participants (1)
-
Matthieu Brucher