A short blog on discovering the Singular-Value Decomposition (SVD) method for matrix factorization.

**Singular-Value Decomposition**

The Singular-Value Decomposition, or SVD for short, is a matrix decomposition method for reducing a matrix to its constituent parts in order to make certain subsequent matrix calculations simpler.

A = U . Sigma . V^T

where, A is the real *m x n* matrix that we wish to decompose, U is an *m x m* matrix, Sigma (often represented by the uppercase Greek letter Sigma Σ) is an *m x n* diagonal matrix, and V^T is the transpose of an *n x n* matrix where T is a superscript.

**Calculate Singular-Value Decomposition**

The SVD can be calculated by calling the svd() function.

The function takes a matrix and returns the U, Sigma, and V^T elements. The Sigma diagonal matrix is returned as a vector of singular values. The V matrix is returned in a transposed form, e.g. V.T.

# Singular-value decomposition
from numpy import array
from scipy.linalg import svd
# define a matrix
A = array([[1, 2], [3, 4], [5, 6]])
print(A)
# SVD
U, s, V = svd(A)
print(U)
print(s)
print(V)

Output in Jupyter Notebook:
[[1 2]
[3 4]
[5 6]]
[[-0.2298477 0.88346102 0.40824829]
[-0.52474482 0.24078249 -0.81649658]
[-0.81964194 -0.40189603 0.40824829]]
[9.52551809 0.51430058]
[[-0.61962948 -0.78489445]
[-0.78489445 0.61962948]]

### Like this:

Like Loading...