(WIP) Sparse models: S-LASSO and TV-l1

- Supports TV-l1 and S-LASSO priors
- Supports logistic and squared losses
- Has cross validation
- Can automatically select alpha by CV (+ automatic computation of useful alpha ranges for the CV)
- Warning: User must supply l1_ratio
No, there is apparent bad naming here. It ought to be something like
`prox_l1_with_intercept`.

On Mon, Oct 20, 2014 at 11:49 AM, eickenberg <notifications@github.com>
wrote:

> In nilearn/decoding/space_net_solvers.py:
>
> > +
> > +    a = np.random.randn(X.shape[1])
> > +    a /= sqrt(np.dot(a, a))
> > +    grad_buffer = np.zeros(mask.shape)
> > +    for _ in xrange(n_iterations):
> > +        grad_buffer[mask] = a
> > +        a = - div(gradient(grad_buffer))[mask] / sqrt(np.dot(a, a))
> > +
> > +    grad_buffer[mask] = a
> > +    grad_constant = (- np.dot(div(gradient(grad_buffer))[mask], a)
> > +                     / np.dot(a, a))
> > +
> > +    return data_constant + grad_weight * grad_constant
> > +
> > +
> > +def intercepted_prox_l1(x, tau):
>
> meh - if I may: This function name sounds like it kind of stops the
> prox_l1 from doing something somewhere in the middle.
> prox_l1_skip_intercept ?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/nilearn/nilearn/pull/219/files#r19075936>.
>



-- 
DED