non_negative_tucker(tensor, rank, n_iter_max=10, init='svd', tol=0.0001, random_state=None, verbose=False, ranks=None)[source]

Non-negative Tucker decomposition

Iterative multiplicative update, see [R16]

tensor : ndarray

rank : int

number of components

n_iter_max : int

maximum number of iteration

init : {‘svd’, ‘random’}

random_state : {None, int, np.random.RandomState}


core : ndarray

positive core of the Tucker decomposition has shape ranks

factors : ndarray list

list of factors of the CP decomposition element i is of shape (tensor.shape[i], rank)


[R16](1, 2) Yong-Deok Kim and Seungjin Choi, “Nonnegative tucker decomposition”, IEEE Conference on Computer Vision and Pattern Recognition s(CVPR), pp 1-8, 2007