fill.SVT {filling}R Documentation

Singular Value Thresholding for Nuclear Norm Optimization

Description

fill.SVT is an iterative updating scheme for Nuclear Norm Minimization problem. An unconstrained parahrase of the problem introduced in fill.nuclear is

\mathrm{minimize}\quad \frac{1}{2}\|P_{\Omega}(X-A) \|_F^2 + \lambda \| X \|_*

where P_{\Omega}(X)=X_{ij} if it is observed, or 0 otherwise. It performs iterative shrinkage on newly computed singular values.

Usage

fill.SVT(A, lambda = 1, maxiter = 100, tol = 0.001)

Arguments

A

an (n\times p) partially observed matrix.

lambda

a regularization parameter.

maxiter

maximum number of iterations to be performed.

tol

stopping criterion for an incremental progress.

Value

a named list containing

X

an (n\times p) matrix after completion.

References

Cai J, Candès EJ, Shen Z (2010). “A Singular Value Thresholding Algorithm for Matrix Completion.” SIAM Journal on Optimization, 20(4), 1956–1982. ISSN 1052-6234, 1095-7189.

See Also

fill.nuclear

Examples

## Not run: 
## load image data of 'lena128'
data(lena128)

## transform 5% of entries into missing
A <- aux.rndmissing(lena128, x=0.05)

## apply the method
fill1 <- fill.SVT(A, lambda=0.1)
fill2 <- fill.SVT(A, lambda=1.0)
fill3 <- fill.SVT(A, lambda=20)

## visualize
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(A, col=gray((0:100)/100), axes=FALSE, main="5% missing")
image(fill1$X, col=gray((0:100)/100), axes=FALSE, main="lbd=0.1")
image(fill2$X, col=gray((0:100)/100), axes=FALSE, main="lbd=1")
image(fill3$X, col=gray((0:100)/100), axes=FALSE, main="lbd=10")
par(opar)

## End(Not run)


[Package filling version 0.2.3 Index]