dynamo.tl.psl(Y, sG=None, dist=None, K=10, C=1000.0, param_gamma=0.001, d=2, maxIter=10, verbose=False)[source]

This function is a pure Python implementation of the PSL algorithm.

Reference: Li Wang and Qi Mao, Probabilistic Dimensionality Reduction via Structure Learning. T-PAMI, VOL. 41, NO. 1, JANUARY 2019

  • Y ('numpy.ndarray') – data list

  • sG ('scipy.sparse.csr_matrix') – a prior kNN graph passed to the algorithm

  • dist ('numpy.ndarray') – a dense distance matrix between all vertices. If no distance matrix passed, we will use the kNN based algorithm, otherwise we will use the original algorithm reported in the manuscript.

  • K ('int') – number of nearest neighbors used to build the neighborhood graph. Large k can obtain less sparse structures. Ignored if sG is used.

  • C ('int') – The penalty parameter for loss term. It controls the preservation of distances. The larger it is, the distance is more strictly preserve. If the structure is very clear, a larger C is preferred.

  • param_gamma ('int') – param_gamma is trying to make a matrix A nonsingular, it is like a round-off parameter. 1e-4 or 1e-5 is good. It corresponds to the variance of prior embedding.

  • d ('int') – embedding dimension

  • maxIter ('int') – Number of maximum iterations

  • verbose ('bool') – Whether to print running information


(S,Z) – a tuple of the adjacency matrix and the reduced low dimension embedding.

Return type