Package mvpa :: Package clfs :: Module lars :: Class LARS

[hide private]
[frames] | no frames]

# Class LARS

source code

Least angle regression (LARS) Classifier.

LARS is the model selection algorithm from:

Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani, Least Angle Regression Annals of Statistics (with discussion) (2004) 32(2), 407-499. A new method for variable subset selection, with the lasso and 'epsilon' forward stagewise methods as special cases.

Similar to SMLR, it performs a feature selection while performing classification, but instead of starting with all features, it starts with none and adds them in, which is similar to boosting.

This classifier behaves more like a ridge regression in that it returns prediction values and it treats the training labels as continuous.

In the true nature of the PyMVPA framework, this algorithm is actually implemented in R by Trevor Hastie and wrapped via RPy. To make use of LARS, you must have R and RPy installed as well as the LARS contributed package. You can install the R and RPy with the following command on Debian-based machines:

sudo aptitude install python-rpy python-rpy-doc r-base-dev

You can then install the LARS package by running R as root and calling:

install.packages()

Nested Classes | [hide private]

Inherited from `misc.state.ClassWithCollections`: `__metaclass__`

Instance Methods | [hide private]

__init__(self, model_type="lasso", trace=False, normalize=True, intercept=True, max_steps=None, use_Gram=False, **kwargs) Initialize LARS. | source code

__repr__(self) String summary of the object | source code

_train(self, data) Train the classifier using `data` (Dataset). | source code

_predict(self, data) Predict the output for the provided data. | source code

_getFeatureIds(self) Return ids of the used features | source code

getSensitivityAnalyzer(self, **kwargs) Returns a sensitivity analyzer for LARS. | source code

Inherited from `base.Classifier`: `__str__`, `clone`, `isTrained`, `predict`, `repredict`, `retrain`, `summary`, `train`, `trained`, `untrain`

Inherited from `base.Classifier` (private): `_postpredict`, `_posttrain`, `_prepredict`, `_pretrain`, `_regressionIsBogus`, `_setRetrainable`

Inherited from `misc.state.ClassWithCollections`: `__getattribute__`, `__new__`, `__setattr__`, `reset`

Inherited from `object`: `__delattr__`, `__format__`, `__hash__`, `__reduce__`, `__reduce_ex__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]

| _clf_internals = `['lars', 'regression', 'linear', 'has_sensiti`...`` Describes some specifics about the classifier -- is that it is doing regression for instance....
| weights = `property(lambda self: self.__weights)`
Inherited from `base.Classifier`: `_DEV__doc__`, `feature_ids`, `predicting_time`, `predictions`, `regression`, `retrainable`, `trained_dataset`, `trained_labels`, `trained_nsamples`, `training_confusion`, `training_time`, `values` Inherited from `misc.state.ClassWithCollections`: `descr`

Instance Variables | [hide private]

| __weights The beta weights for each feature.
| __trained_model The model object after training that will be used for predictions.

Properties | [hide private]

Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, model_type="lasso", trace=False, normalize=True, intercept=True, max_steps=None, use_Gram=False, **kwargs)
(Constructor)

source code

Initialize LARS.

See the help in R for further details on the following parameters:

Parameters:
  - `model_type` (string) - Type of LARS to run. Can be one of ('lasso', 'lar', 'forward.stagewise', 'stepwise').
  - `trace` (boolean) - Whether to print progress in R as it works.
  - `normalize` (boolean) - Whether to normalize the L2 Norm.
  - `intercept` (boolean) - Whether to add a non-penalized intercept to the model.
  - `max_steps` (None or int) - If not None, specify the total number of iterations to run. Each iteration adds a feature, but leaving it none will add until convergence.
  - `use_Gram` (boolean) - Whether to compute the Gram matrix (this should be false if you have more features than samples.)
Overrides: object.__init__

### __repr__(self)
(Representation operator)

source code

String summary of the object

Parameters:
  - `fullname` - Either to include full name of the module
  - `prefixes` - What other prefixes to prepend to list of arguments
Overrides: object.__repr__

### _train(self, data)

source code

Train the classifier using `data` (Dataset).

Overrides: base.Classifier._train

### _predict(self, data)

source code

Predict the output for the provided data.

Overrides: base.Classifier._predict

### _getFeatureIds(self)

source code

Return ids of the used features

Overrides: base.Classifier._getFeatureIds

### getSensitivityAnalyzer(self, **kwargs)

source code

Returns a sensitivity analyzer for LARS.

Overrides: base.Classifier.getSensitivityAnalyzer

Class Variable Details | [hide private]

### _clf_internals

Describes some specifics about the classifier -- is that it is doing regression for instance....

Value:

      ['lars', 'regression', 'linear', 'has_sensitivity', 'does_feature_sele
      ction',]