LRSC {T4cluster} | R Documentation |
Low-Rank Subspace Clustering
Description
Low-Rank Subspace Clustering (LRSC) constructs the connectivity of the data by solving
for the uncorrupted data scenario where is a column-stacked
data matrix. In the current implementation, the first equality constraint
for reconstructiveness of the data can be relaxed by solving
controlled by the regularization parameter . If you are interested in
enabling a more general class of the problem suggested by authors,
please contact maintainer of the package.
Usage
LRSC(data, k = 2, type = c("relaxed", "exact"), tau = 1)
Arguments
data |
an |
k |
the number of clusters (default: 2). |
type |
type of the problem to be solved. |
tau |
regularization parameter for relaxed-constraint problem. |
Details
for column-stacked data matrix and
is the
nuclear norm which is relaxation of the rank condition. If you are interested in
full implementation of the algorithm with sparse outliers and noise, please
contact the maintainer.
Value
a named list of S3 class T4cluster
containing
- cluster
a length-
vector of class labels (from
).
- algorithm
name of the algorithm.
References
Vidal R, Favaro P (2014). “Low Rank Subspace Clustering (LRSC).” Pattern Recognition Letters, 43, 47–61. ISSN 01678655.
Examples
## generate a toy example
set.seed(10)
tester = genLP(n=100, nl=2, np=1, iso.var=0.1)
data = tester$data
label = tester$class
## do PCA for data reduction
proj = base::eigen(stats::cov(data))$vectors[,1:2]
dat2 = data%*%proj
## run LRSC algorithm with k=2,3,4 with relaxed/exact solvers
out2rel = LRSC(data, k=2, type="relaxed")
out3rel = LRSC(data, k=3, type="relaxed")
out4rel = LRSC(data, k=4, type="relaxed")
out2exc = LRSC(data, k=2, type="exact")
out3exc = LRSC(data, k=3, type="exact")
out4exc = LRSC(data, k=4, type="exact")
## extract label information
lab2rel = out2rel$cluster
lab3rel = out3rel$cluster
lab4rel = out4rel$cluster
lab2exc = out2exc$cluster
lab3exc = out3exc$cluster
lab4exc = out4exc$cluster
## visualize
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,3))
plot(dat2, pch=19, cex=0.9, col=lab2rel, main="LRSC Relaxed:K=2")
plot(dat2, pch=19, cex=0.9, col=lab3rel, main="LRSC Relaxed:K=3")
plot(dat2, pch=19, cex=0.9, col=lab4rel, main="LRSC Relaxed:K=4")
plot(dat2, pch=19, cex=0.9, col=lab2exc, main="LRSC Exact:K=2")
plot(dat2, pch=19, cex=0.9, col=lab3exc, main="LRSC Exact:K=3")
plot(dat2, pch=19, cex=0.9, col=lab4exc, main="LRSC Exact:K=4")
par(opar)