Skip to content
dmckinnon edited this page Dec 18, 2019 · 4 revisions

Singular Value Decomposition (SVD) is a technique for any matrix to be decomposed into a more workable form. One major use case for this is to be able to approximate the original matrix. SVD breaks a matrix down into its singular values and singular vectors, and by using only the few biggest of these, we can get an approximation to varying degrees of accuracy of the original matrix. Where this comes into play is where we might have a 1000x2000 matrix of customers and products, and we want to know the most popular products for customers. We can use k singular values, where singular values are real numbers, use these to get an approximation to the matrix (that is, minimise the difference between our created matrix and the original to some degree), and viola! Or we might have a 640x480 image - a 2D array of numbers, which is a matrix - and we want to store it using less memory, and we're ok sacrificing some quality. So we use only a few singular values to approximate it.

This is just a quick overview. For more detail into the theory behind SVD and how the image compression code works, see the other two pages in the wiki

Clone this wiki locally