2013/2/14 Charles-Pierre Astolfi <[email protected]>:
> Hi everyone,
>
> A few months ago, I posted on this list about how
> lars_path(method='lasso') was much faster than lasso_path, when one
> has to compute lasso for many different regularization parameters
> (alphas).
>
> Basically the idea is that lars_path(method='lasso') returns all the
> kinks (hitting points) of lasso, and we simply have to do a linear
> interpolation to find the coefs for any alpha ; whereas lasso_path
> actually computes a sgd for each such alpha.
>
> This gist shows a first hackish implementation of this idea (lines 33-64)
> https://gist.github.com/cpa/4956775
>
> Speedups speak for themselves (2000-fold when computing more than 1800
> different alphas!)
>
> Here are some plots:
> http://imgur.com/B9EIVwq
>
> First row is about correctness of the new method compared to the old one:
> Let x1, x2 be the old coefs and the new coefs (by the method I propose).
> First plot is an histogram of log10(| |x1| - |x2| |) and the second
> plot is boxplot of log10( | |x1| - |x2| | ). For the sake of
> legibility, I've set log10(0) == -10.
>
> The second row is about speed: first plot shows the runtime of
> lasso_path and the new code and the second plot shows the achieved
> speedup.
>
>
> I would like some help in order to create a meaningful Pull Request!
>
> * Now that I've computed the lasso coefs for each alpha, I need to put
> them in an ElasticNet object (or Lasso object but lasso_path uses
> ElasticNet, so I think it's better to keep that in order to avoid
> breaking things) ; is setting the values of coef_, intercept_, alpha,
> l1_ratio enough?

I don't really understand what is the goal of putting it back into a
Lasso / ElasticNet class.

This is a Lasso LARS solution (+ interpolated points), why do you want
to make it look like a Coordinate Descent solution?

Why not keep the LassoLars class or even just wrap them as LinearModel
instances?

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/least_angle.py#L586
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/base.py#L119

--
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Scikit-learn-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to