projFunc: Projection of a Vector to a Sparse Vector
Description
projFunc: R implementation of projFunc.
Usage
projFunc(s, k1, k2)
Arguments
s
data vector.
k1
sparseness, l1 norm constraint.
k2
l2 norm constraint.
Value
v
sparse projected vector.
Details
The projection is done according to Hoyer, 2004: given an
$l_1$-norm and an $l_2$-norm minimize the Euclidean distance
to the original vector.
The projection is a convex quadratic problem which is solved
iteratively where at each iteration at least one component is set to
zero.
In the applications,
instead of the $l_1$-norm a sparseness measurement is used
which relates the $l_1$-norm to the $l_2$-norm.
Implementation in R.
References
Patrik O. Hoyer,
Non-negative Matrix Factorization with Sparseness Constraints,
Journal of Machine Learning Research 5:1457-1469, 2004.
#---------------# DEMO#---------------
size <- 30
sparseness <- 0.7
s <- as.vector(rnorm(size))
sp <- sqrt(1.0*size)-(sqrt(1.0*size)-1.0)*sparseness
ss <- projFunc(s,k1=sp,k2=1)
s
ss