1. A method of factorizing a data matrix U file by supervised nonnegative factorization, SNMF, comprising: providing a data processing device to implement the following step: accessing said data matrix U from a data store, wherein data matrix U is defined as Uε ; defining an intrinsic graph G, wherein G={U,W}, each column of Uε represents a vertex, and each element of similarity matrix W measures the similarity between vertex pairs; defining a penalty graph G , wherein G ={U, W } and each element of dissimilarity matrix W measures unfavorable relationships between said vertex pairs; defining an intrinsic diagonal matrix D, wherein D=[D ij ] and D ii =Σ j=1 n W ij ; defining an intrinsic Laplacian matrix L, wherein L=D−W; defining a penalty diagonal matrix D , wherein D =[ D ij ] and D ii =Σ j=1 n W ij ; defining a penalty Laplacian matrix L , wherein L = D − W ; defining a basis matrix V, where Vε ; defining a feature matrix X, where Xε ; defining a measure of the compactness of intrinsic graph G by the weighted sum of squared distances defined as Σ i<j n W ij ∥x i −x j ∥ 2 =Tr(XLX T ), wherein x i is the i-th column of X and x j is the j-th column of X; defining a measure of the separability of penalty graph G by the weighted sum of squared distances defined as Σ i<j n W ij ∥x i −x j ∥ 2 =Tr(X L X T ), wherein x i is the i-th column of X and x j is the j-th column of X; defining F (1) (V, X) as an objective of NMF (nonnegative matrix factorization); defining F (2) (X) as an objective of graph embedding, F (2) (X) being proportional to ratio Tr ( XLX T ) Tr ( X L _ X T ) ; deriving an SNMF objective from a sum of F (1) (V, X) and F (2) (X), and determining said SNMF objective through iterative multiplicative updates.