Single Value Decomposition (SVD): A Golfer’s Tutorial

NewImageSingle 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.

This 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.

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



Then, one can compute the SVD:


Resulting in,


Graphically, the singular values can be visualized as,


This 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,


Resulting in,




Categories: Tools

Tags: ,

2 replies

  1. 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?

  2. 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?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: