Single Value Decomposition (SVD) is one of my favorite tools for factorizing data, but it can be a rather hard concept to wrap one’s brain around, especially if you don’t have a strong mathematical background. In order to gain a more practical understanding of how SVD are performed and their practical applications, many resort to Googling terms like “Single Value Decomposition tutorial” and “Single Value Decomposition practical example,” only to be disappointed by the results. Alas, here is a tutorial that is both easy to understand, while applying a practical example that more can related to: Golf Score Prediction Using SVD.

**T**his tutorial breaks down the SVD process by looking at the golf scores of three players – Phil, Tiger, and Vijay. By starting with a simple, naive example, the author builds a complete understanding of not only practical mechanics of SVD, but the mathematical background as well. Overall, a simple and elegant example.

**B**ased on the tutorial work, here are a few R scripts I used to recreate the results:

**T**hen, one can compute the SVD:

**R**esulting in,

**G**raphically, the singular values can be visualized as,

**T**his means that first left and right singular values ($u, $v) represent almost 98.9% of the variance in the matrix. In R, we can approximate the result with,

**R**esulting in,

### Like this:

Like Loading...

Categories: Tools

Tags: Single Value Decomposition, SVD

I like where you’re going with this post, but was hoping for a bit more. What does the result tell you exactly? How is it useful?

Dr. Jerry, I hate to say it sir, but this is the worst tutorial on the SVD that I’ve found. Ironically you start by correctly describing the frustration of getting to learn SVD, then they do exactly the opposite of what you promised – uncover SVD. SVD becomes more of a mystery after reading your article… there’s actually very little to read even! The title is quite misleading. There should have been more gradual step-by-step explanation. Instead you dives right into doing some code and showing the output, then an abrupt end. Pls! Who will ever unravel the SVD?