a=feat_sel(feats,rank_alg,classify_alg,hyper)
A convenient way of combining a feature ranking algorithm with a classifier
for many different numbers of features without retraining the
ranking classifier. You should specify a vector of number of
features (feats) a ranking algorithm (rank_alg) and a
classification algorithm (classify_alg) plus optional hyperparameters.
Note: (usually the vector (feats) should be smallest value
first as the ranking algorithm will only be trained on the
first value, and some algorithms such as
l0 and rfe will provide a better ranking this way)
Hyperparameters, and their defaults
feats=[] -- features to be tried
Model
rank_alg, classify_alg -- underlying original algorithms
child -- combination of algorithms together
Methods:
train, test
Example:
perform feature selection with fisher and classification with svm
for between 1 and 20 features selected
a=feat_sel([1:20],fisher,svm('ridge=0.01'));
[tr,a]=train(a,toy);
r=test(a,toy)
loss(r)