## Visualizing Higher-Dimensional Data

I’ve wondered for quite a while about how one could view data in more than 3 dimensions.  Even 3 dimensions is difficult to view sometimes, since we really only see 2 dimensional images that have a depth component, not an entire 3D volume.  With that in mind, it’s not reasonable to try to view and understand all of the structure of a higher-dimensional object all together.

I found on Wikipedia this representation of a 10-cube, which got me thinking of how to view all vertices of such a hypercube.  I also noticed that the logarithm of n choose n/2 increases only linearly with n (in fact it appears that n choose n/2 can be approximated with $2^na/\sqrt{n+b}$ for some a and b such that the relative error approaches zero as n increases), but it’s a bit harder to see the relevance of this.  I then decided to make a similar visualization of the coloured vertices of an n-dimensional hypercube for my Computational Geometry (COMP 5008) project.

Here’s that project.  I wrote up a document on it too, so I won’t dwell on it more.  Ben, a good friend of mine, is making a version that shouldn’t eat up nearly so much CPU time by rendering the visualization with OpenGL.

Update: Last night, I determined that, oddly enough, n choose n/2 can be approximated with:
$2^n/\sqrt{\frac{\pi}{2}n+\frac{\pi}{4}+\frac{\pi}{16}n^{-1}-\frac{\pi}{32}n^{-2}-o(n^{-2})}$

12-D Hypercube Screenshot Showing 128 Simulated Annealing Runs

~ by Neil Dickson on December 29, 2008.

### 3 Responses to “Visualizing Higher-Dimensional Data”

1. There already is a great deal of dimensionality reduction research…unfortunately the parameters in which they work with isn’t all that great for the n-dimensional boolean hypercube.

Your approach doesn’t generalize well beyond 12 dimensions does it? A problem with 12 boolean variables is kinda piddly as I’m sure you know…

2. It should work up to 16 dimensions on those huge monitors, lol. It doesn’t scale up because it doesn’t reduce the dimensionality; it just selects a few aspects of the structure to show. Yeah, it’s not actually able to view anything of a significant number of variables, but hopefully it can at least give a bit of a hint at the structure involved in the problems.

3. 😦

Problem is that the problems we deal with don’t show structure until they’re around the 1000 variable range (which is still fairly small for our solving techniques).