tensorly.decomposition.constrained_parafac
- constrained_parafac(tensor, rank, n_iter_max=100, n_iter_max_inner=10, init='svd', svd='truncated_svd', tol_outer=1e-08, tol_inner=1e-06, random_state=None, verbose=0, return_errors=False, cvg_criterion='abs_rec_error', fixed_modes=None, non_negative=None, l1_reg=None, l2_reg=None, l2_square_reg=None, unimodality=None, normalize=None, simplex=None, normalized_sparsity=None, soft_sparsity=None, smoothness=None, monotonicity=None, hard_sparsity=None)[source]
- CANDECOMP/PARAFAC decomposition via alternating optimization of alternating direction method of multipliers (AO-ADMM): - Computes a rank-rank decomposition of tensor [1] such that: - tensor = [|weights; factors[0], ..., factors[-1] |], - where factors are either penalized or constrained according to the user-defined constraint. - In order to compute the factors efficiently, the ADMM algorithm introduces an auxilliary factor which is called factor_aux in the function. - Parameters:
- tensorndarray
- rankint
- Number of components. 
- n_iter_maxint
- Maximum number of iteration for outer loop 
- n_iter_max_innerint
- Number of iteration for inner loop 
- init{‘svd’, ‘random’, cptensor}, optional
- Type of factor matrix initialization. See initialize_factors. 
- svdstr, default is ‘truncated_svd’
- function to use to compute the SVD, acceptable values in tensorly.SVD_FUNS 
- tol_outerfloat, optional
- (Default: 1e-8) Relative reconstruction error tolerance for outer loop. The algorithm is considered to have found a local minimum when the reconstruction error is less than tol_outer. 
- tol_innerfloat, optional
- (Default: 1e-6) Absolute reconstruction error tolerance for factor update during inner loop, i.e. ADMM optimization. 
- random_state{None, int, np.random.RandomState}
- verboseint, optional
- Level of verbosity 
- return_errorsbool, optional
- Activate return of iteration errors 
- non_negativebool or dictionary
- This constraint is clipping negative values to ‘0’. If it is True, non-negative constraint is applied to all modes. 
- l1_regfloat or list or dictionary, optional
- Penalizes the factor with the l1 norm using the input value as regularization parameter. 
- l2_regfloat or list or dictionary, optional
- Penalizes the factor with the l2 norm using the input value as regularization parameter. 
- l2_square_regfloat or list or dictionary, optional
- Penalizes the factor with the l2 square norm using the input value as regularization parameter. 
- unimodalitybool or dictionary, optional
- If it is True, unimodality constraint is applied to all modes. Applied to each column seperately. 
- normalizebool or dictionary, optional
- This constraint divides all the values by maximum value of the input array. If it is True, normalize constraint is applied to all modes. 
- simplexfloat or list or dictionary, optional
- Projects on the simplex with the given parameter Applied to each column seperately. 
- normalized_sparsityfloat or list or dictionary, optional
- Normalizes with the norm after hard thresholding 
- soft_sparsityfloat or list or dictionary, optional
- Impose that the columns of factors have L1 norm bounded by a user-defined threshold. 
- smoothnessfloat or list or dictionary, optional
- Optimizes the factors by solving a banded system 
- monotonicitybool or dictionary, optional
- Projects columns to monotonically decreasing distrbution Applied to each column seperately. If it is True, monotonicity constraint is applied to all modes. 
- hard_sparsityfloat or list or dictionary, optional
- Hard thresholding with the given threshold 
- cvg_criterion{‘abs_rec_error’, ‘rec_error’}, optional
- Stopping criterion if tol is not None. If ‘rec_error’, algorithm stops at current iteration if - (previous rec_error - current rec_error) < tol. If ‘abs_rec_error’, algorithm terminates when |previous rec_error - current rec_error| < tol.
- fixed_modeslist, default is None
- A list of modes for which the initial value is not modified. The last mode cannot be fixed due to error computation. 
 
- Returns:
- CPTensor(weight, factors)
- weights : 1D array of shape (rank, ) 
- factors : List of factors of the CP decomposition element i is of shape - (tensor.shape[i], rank)
 
- errorslist
- A list of reconstruction errors at each iteration of the algorithms. 
 
 - References [1]- T.G.Kolda and B.W.Bader, “Tensor Decompositions and Applications”, SIAM REVIEW, vol. 51, n. 3, pp. 455-500, 2009. [2]- Huang, Kejun, Nicholas D. Sidiropoulos, and Athanasios P. Liavas. “A flexible and efficient algorithmic framework for constrained matrix and tensor factorization.” IEEE Transactions on Signal Processing 64.19 (2016): 5052-5065.