Ignore:
Timestamp:
05/04/12 18:07:12 (2 years ago)
Author:
Lan Zagar <lan.zagar@…>
Branch:
default
Message:

Reimplemented lasso. Breaks compatibility.

It now uses a proximal gradient method for optimization instead of using scipy.optimize (see #1118).
The formulation is slightly different so there are new parameters (mainly lasso_lambda instead of t/s).
Improved some other things as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • docs/reference/rst/Orange.regression.lasso.rst

    r10536 r10859  
    1111 
    1212 
    13 `The Lasso <http://www-stat.stanford.edu/~tibs/lasso/lasso.pdf>`_ is a shrinkage 
    14 and selection method for linear regression. It minimizes the usual sum of squared 
    15 errors, with a bound on the sum of the absolute values of the coefficients.  
     13`The lasso <http://www-stat.stanford.edu/~tibs/lasso/lasso.pdf>`_ 
     14(least absolute shrinkage and selection operator) is a regularized 
     15version of least squares regression. 
     16It minimizes the sum of squared errors while also penalizing the 
     17:math:`L_1` norm (sum of absolute values) of the coefficients. 
    1618 
    17 To fit the regression parameters on housing data set use the following code: 
     19Concretely, the function that is minimized in Orange is: 
    1820 
    19 .. literalinclude:: code/lasso-example.py 
    20    :lines: 9,10,11 
     21.. math:: \frac{1}{n}\|Xw - y\|_2^2 + \frac{\lambda}{m} \|w\|_1 
     22 
     23Where :math:`X` is a :math:`n \times m` data matrix, :math:`y` the vector 
     24of class values and :math:`w` the regression coefficients to be estimated. 
    2125 
    2226.. autoclass:: LassoRegressionLearner 
    2327    :members: 
     28    :show-inheritance: 
    2429 
    2530.. autoclass:: LassoRegression 
    2631    :members: 
    27  
    28  
    29 .. autoclass:: LassoRegressionLearner 
    30     :members: 
    31  
    32 .. autoclass:: LassoRegression 
    33     :members: 
     32    :show-inheritance: 
    3433 
    3534Utility functions 
    3635----------------- 
    37  
    38 .. autofunction:: center 
    3936 
    4037.. autofunction:: get_bootstrap_sample 
     
    4744======== 
    4845 
    49 To predict values of the response for the first five instances 
    50 use the code 
     46To fit the regression parameters on housing data set use the following code: 
    5147 
    5248.. literalinclude:: code/lasso-example.py 
    53    :lines: 14,15 
     49   :lines: 9,10,11 
    5450 
    55 Output 
    56  
    57 :: 
    58  
    59     Actual: 24.00, predicted: 24.58  
    60     Actual: 21.60, predicted: 23.30  
    61     Actual: 34.70, predicted: 24.98  
    62     Actual: 33.40, predicted: 24.78  
    63     Actual: 36.20, predicted: 24.66  
    64  
    65 To see the fitted regression coefficients, print the model 
     51To predict values of the response for the first five instances: 
    6652 
    6753.. literalinclude:: code/lasso-example.py 
    68    :lines: 17 
     54   :lines: 15,16 
    6955 
    70 The output 
     56Output:: 
    7157 
    72 :: 
     58    Actual: 24.00, predicted: 30.45 
     59    Actual: 21.60, predicted: 25.60 
     60    Actual: 34.70, predicted: 31.48 
     61    Actual: 33.40, predicted: 30.18 
     62    Actual: 36.20, predicted: 29.59 
    7363 
    74     Variable  Coeff Est  Std Error          p 
     64To see the fitted regression coefficients, print the model: 
     65 
     66.. literalinclude:: code/lasso-example.py 
     67   :lines: 19 
     68 
     69Output:: 
     70 
     71      Variable  Coeff Est  Std Error          p 
    7572     Intercept     22.533 
    76           CRIM     -0.000      0.023      0.480       
    77          INDUS     -0.010      0.023      0.300       
    78             RM      1.303      0.994      0.000   *** 
    79            AGE     -0.002      0.000      0.320       
    80        PTRATIO     -0.191      0.209      0.050     . 
    81          LSTAT     -0.126      0.105      0.000   *** 
     73          CRIM     -0.023      0.024      0.050     . 
     74          CHAS      1.970      1.331      0.040     * 
     75           NOX     -4.226      2.944      0.010     * 
     76            RM      4.270      0.934      0.000   *** 
     77           DIS     -0.373      0.170      0.010     * 
     78       PTRATIO     -0.798      0.117      0.000   *** 
     79             B      0.007      0.003      0.020     * 
     80         LSTAT     -0.519      0.102      0.000   *** 
    8281    Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1 empty 1 
    8382 
     83    For 5 variables the regression coefficient equals 0: 
     84    ZN, INDUS, AGE, RAD, TAX 
    8485 
    85     For 7 variables the regression coefficient equals 0:  
    86     ZN 
    87     CHAS 
    88     NOX 
    89     DIS 
    90     RAD 
    91     TAX 
    92     B 
     86Note that some of the regression coefficients are equal to 0.     
    9387 
    94 shows that some of the regression coefficients are equal to 0.     
    95  
Note: See TracChangeset for help on using the changeset viewer.