Skip to main content
. 2017 Aug 29;114(37):9814–9819. doi: 10.1073/pnas.1700770114

Algorithm S1.

Joint Clustering and Dimensionality Reduction

I: input: Data samples {𝐱}i=1n, dimensionality d, parameters γ, ξ, η.
II: output: Cluster assignment {c^i}i=1n and latent factors 𝐃.
III: Construct connectivity structure E.
IV: Initialize dictionary 𝐃 and codes 𝐙.
V: Precompute wp,q, δ1, δ2.
Vi: Initialize 𝐮i=𝐳i, li𝟣 =1, lp,q𝟤 =1,μ1=ξδ1, μ2max𝐳p𝐳q22, λ.
VII: while |𝐂t𝐂t1|<ε or t < maxiterations do
VIII: Update li𝟣 and lp,q𝟤 using Eq. 5.
IX: Update {𝐳i}i=1n using Eq. 14.
X: Update {𝐮i}i=1n using Eq. 12.
XI: Every 4 iterations, update λ, μi=max(μi2,δi2).
XII: Every 10 iterations, update 𝐃 using Eq. 17.
XIII: Construct graph G=(V,F) with fp,q=1 if 𝐮p𝐮q2<δ2.
XIV: Output clusters given by the connected components of G.