Menu

problem with Isomap's "-tolerant"

Help
Anonymous
2013-03-22
2013-03-25
  • Anonymous

    Anonymous - 2013-03-22

    Hello!

    I'm using Isomap to reduce some 24 dimensional datasets into 2 or 3 dimensional datasets. With the first set I tried (6000 samples) I had no problems and the result was very similar to what I had obtained for comparison with the isomap algorithm from a matlab toolbox, i.e. a sphere-like object.

    However, when I tried a second set (2400 samples, which gave a similar sphere-like structure using matlab), the program complained about the neighbor graph not being connected. Upon including the "-tolerant" option, however, the result was something completely different than expected: the plot shows a single line segment. I then checked the reduced data and found that one of the two output columns was just the zero vector.

    I tried again varying the neighbor number (between 5 and 40) and , but I had similar results: a line segment. Note here that the matlab toolbox also drops some points (it uses the largest connected component in the neighbor graph), and that waffles' isomap dropped as few as 100 points whith high neighbor numbers, but still there was no trace of the sphere-like structure.

    The question then is: Is this a problem with the "-tolerant" option? This may be the case as isomap worked perfectly fine with the first dataset.

    Thank you,

    david
    .

     
  • Mike Gashler

    Mike Gashler - 2013-03-22

    The -tolerant option is not specified in Tenenbaum's paper. I just added it as a hack to try to make Isomap more robust. As I look at this code again, I think I see the problem. My code removes the point with the fewest neighbors, until the graph is fully connected. This will correctly destroy connected components with fewer than k points, but it will be arbitrary with connected components that contain more than k points.

    I will add this to my list of things to do, but unfortunately, it will probably take me a long time to get to it. If you want to tinker with it, the relevant code is in the GIsomap class in waffles/src/GClasses/GManifold.cpp and the GFloydWarshall class in waffles/src/GClasses/GGraph.cpp.

     
  • Anonymous

    Anonymous - 2013-03-22

    I cannot figure out why SourceForge e-mails always show the second paragraph in huge bold font.

    This is a test.

     
  • Anonymous

    Anonymous - 2013-03-25

    Thank you for your help, I'm glad to contribute.

    david
    .

     
  • Mike Gashler

    Mike Gashler - 2013-03-25

    That would be great! If you send me an e-mail with a SourceForge username, I can give you access to submit changes to our Git repository. (My e-mail address is on http://waffles.sf.net)

    Mike

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.