Singular Value Decomposition Tutorial
puffinwarellc.com
puffinwarellc.com
[U,S,V] = svd(X)The site is currently down, google chache link: http://209.85.129.132/search?q=cache:h4Ljyun3gUcJ:sifter.org...
This post doesn't do full justice to the beauty of the SVD. Intuitively, you are trying to compute a transformation that diagonalizes the covariance matrix of the data. Computing the covariance has two problems: 1) this is a O(n^2) operation and 2) can lead to big numerical errors for really small values in the matrix.
By creative use of elementary matrix operations, the SVD gives you the transformation on the original matrix. If you are interested in just the first few singular vectors, certain math libraries also support an economical mode that does just this.
Have you thought about going further back? I'd be curious to see this on voting records as far back as possible, just to see what trends might have happened.
http://www.igvita.com/2007/01/15/svd-recommendation-system-i...
http://www.puffinwarellc.com/index.php/news-and-articles/art...
and its HN thread: http://news.ycombinator.com/item?id=736618