Elastic-Net regression (ENET) Classifier.
Elastic-Net is the model selection algorithm from:
Zou and Hastie (2005) ‘Regularization and Variable Selection via the Elastic Net’ Journal of the Royal Statistical Society, Series B, 67, 301-320.
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.
Unlike LARS it has both L1 and L2 regularization (instead of just L1). This means that while it tries to sparsify the features it also tries to keep redundant features, which may be very very good for fMRI classification.
In the true nature of the PyMVPA framework, this algorithm was actually implemented in R by Zou and Hastie and wrapped via RPy. To make use of ENET, you must have R and RPy installed as well as both the lars and elasticnet 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 and elasticnet package by running R as root and calling:
install.packages()
Notes
Available conditional attributes:
(Conditional attributes enabled by default suffixed with +)
Methods
clone() | Create full copy of the classifier. |
generate(ds) | Yield processing results. |
get_postproc() | Returns the post-processing node or None. |
get_sensitivity_analyzer(**kwargs) | Returns a sensitivity analyzer for ENET. |
get_space() | Query the processing space name of this node. |
is_trained([dataset]) | Either classifier was already trained. |
predict(obj, data, *args, **kwargs) | |
repredict(obj, data, *args, **kwargs) | |
reset() | |
retrain(dataset, **kwargs) | Helper to avoid check if data was changed actually changed Useful if just some aspects of classifier were changed since its previous training. |
set_postproc(node) | Assigns a post-processing node Set to None to disable postprocessing. |
set_space(name) | Set the processing space name of this node. |
summary() | Providing summary over the classifier |
train(ds) | The default implementation calls _pretrain(), _train(), and finally _posttrain(). |
untrain() | Reverts changes in the state of this node caused by previous training |
Initialize ENET.
See the help in R for further details on the following parameters:
Parameters: | lm : float
trace : boolean
normalize : boolean
intercept : boolean
max_steps : None or int
enable_ca : None or list of str
disable_ca : None or list of str
auto_train : bool
force_train : bool
space: str, optional :
postproc : Node instance, optional
descr : str
|
---|
Methods
clone() | Create full copy of the classifier. |
generate(ds) | Yield processing results. |
get_postproc() | Returns the post-processing node or None. |
get_sensitivity_analyzer(**kwargs) | Returns a sensitivity analyzer for ENET. |
get_space() | Query the processing space name of this node. |
is_trained([dataset]) | Either classifier was already trained. |
predict(obj, data, *args, **kwargs) | |
repredict(obj, data, *args, **kwargs) | |
reset() | |
retrain(dataset, **kwargs) | Helper to avoid check if data was changed actually changed Useful if just some aspects of classifier were changed since its previous training. |
set_postproc(node) | Assigns a post-processing node Set to None to disable postprocessing. |
set_space(name) | Set the processing space name of this node. |
summary() | Providing summary over the classifier |
train(ds) | The default implementation calls _pretrain(), _train(), and finally _posttrain(). |
untrain() | Reverts changes in the state of this node caused by previous training |
Returns a sensitivity analyzer for ENET.