tensorly.decomposition
.non_negative_parafac
-
non_negative_parafac
(tensor, rank, n_iter_max=100, init='svd', svd='numpy_svd', tol=1e-06, random_state=None, verbose=0)[source] Non-negative CP decomposition
Uses multiplicative updates, see [R15]Parameters: tensor : ndarray
rank : int
number of components
n_iter_max : int
maximum number of iteration
init : {‘svd’, ‘random’}, optional
svd : str, default is ‘numpy_svd’
function to use to compute the SVD, acceptable values in tensorly.SVD_FUNS
tol : float, optional
tolerance: the algorithm stops when the variation in the reconstruction error is less than the tolerance
random_state : {None, int, np.random.RandomState}
verbose : int, optional
level of verbosity
Returns: factors : ndarray list
list of positive factors of the CP decomposition element i is of shape
(tensor.shape[i], rank)
References
[R15] (1, 2) Amnon Shashua and Tamir Hazan, “Non-negative tensor factorization with applications to statistics and computer vision”, In Proceedings of the International Conference on Machine Learning (ICML), pp 792-799, ICML, 2005