Random C [Albright2006] is inexpensive initialization method for nonnegative
matrix factorization. It is inspired by the C matrix in of the CUR decomposition.
The Random C initialization is similar to the Random Vcol method (see
mod:methods.seeding.random_vcol) except it chooses p columns at random from
the longest (in 2-norm) columns in target matrix (V), which generally means the
most dense columns of target matrix.
Initialization of each column of basis matrix is done by averaging p random
columns of l longest columns of target matrix. Initialization
of mixture matrix is similar except for row operations.
initialize(V, rank, options)
Return initialized basis and mixture matrix. Initialized matrices are
of the same type as passed target matrix.
- V (One of the scipy.sparse sparse matrices types or or
numpy.matrix) – Target matrix, the matrix for MF method to estimate.
- rank (int) – Factorization rank.
- options (dict) –
Specify the algorithm and model specific options (e.g. initialization of
extra matrix factor, seeding parameters).
Option p_c represents the number of columns of target matrix
used to average the column of basis matrix. Default
value for p_c is 1/5 * (target.shape).
Option p_r represents the number of rows of target matrix used
to average the row of basis matrix. Default value for
p_r is 1/5 * (target.shape).
Option l_c represents the first l_c columns of target matrix sorted
descending by length (2-norm). Default value for l_c is 1/2 * (target.shape).
Option l_r represent first l_r rows of target matrix sorted
descending by length (2-norm). Default value for
l_r is 1/2 * (target.shape).