> I guess that could be done, but has a much higher complexity than RFE.

Oh yes, I agree, the sequential feature algorithms are definitely 
computationally more costly. 

> It seems interesting. Is that really used in practice and is there any 
> literature evaluating it?


I am not sure how often it is used in practice nowadays, but I think it is one 
of the classic approaches for feature selection -- I learned about it a couple 
of years ago in a pattern classification class, and there is a relatively 
detailed article in 

Ferri, F., et al. "Comparative study of techniques for large-scale feature 
selection." Pattern Recognition in Practice IV (1994): 403-413.

The optimal solution to feature selection would be to evaluate the performance 
of all possible feature combination, which is a little bit too costly in 
practice. The sequential forward or backward selection (SFS and SBS) algorithms 
are just a suboptimal solution, and there are some minor improvements, e.g,. 
Sequential Floating Forward Selection (SFFS) which allows for the removal of 
added features in later stages etc.

I have an implementation of SBS that uses k-fold cross_val_score, and it is 
actually not a bad idea to use it for KNN to reduce overfitting as alternative 
to dimensionality reduction, for example, KNN cross-val mean accuracy on the 
wine dataset where the features are selected by SBS: 
http://i.imgur.com/ywDTHom.png?1
 
But for scikit-learn, it may be better to implement SBBS or SFFS which is 
slightly more sophisticated.


> On Apr 27, 2015, at 6:00 PM, Andreas Mueller <t3k...@gmail.com> wrote:
> 
> That is like a one-step look-ahead feature selection?
> I guess that could be done, but has a much higher complexity than RFE.
> RFE works for anything that returns "importances", not just linear models.
> It doesn't really work for KNN, as you say. [I wouldn't say 
> non-parametric models. Trees are pretty non-parametric].
> 
> It seems interesting. Is that really used in practice and is there any 
> literature evaluating it?
> There is some discussion here 
> http://www.jmlr.org/papers/volume3/guyon03a/guyon03a.pdf in 4.2
> but there is no empirical comparison or theoretical analysis.
> 
> To be added to sklearn, you'd need to show that it is widely used and / 
> or widely useful.
> 
> 
> On 04/27/2015 02:47 PM, Sebastian Raschka wrote:
>> Hi, I was wondering if sequential feature selection algorithms are currently 
>> implemented in scikit-learn. The closest that I could find was recursive 
>> feature elimination (RFE); 
>> http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html.
>>  However, unless the application requires a fixed number of features, I am 
>> not sure if it is necessarily worthwhile using it over regularized models. 
>> When I understand correctly, it works like this:
>> 
>> {x1, x2, x3} --> eliminate xi with smallest corresponding weight
>> 
>> {x1, x3} --> eliminate xi with smallest corresponding weight
>> 
>> {x1}
>> 
>> However, this would only work with linear, discriminative models right?
>> 
>> Wouldn't be a classic "sequential feature selection" algorithm useful for 
>> non-regularized, nonparametric models e.g,. K-nearest neighbors as an 
>> alternative to dimensionality reduction for applications where the original 
>> features may need to be maintained? The RFE, for example, wouldn't work with 
>> KNN, and maybe the data is non-linearly separable so that RFE with a linear 
>> model doesn't make sense.
>> 
>> In a nutshell, SFS algorithms simply add or remove one feature at the time 
>> based on the classifier performance.
>> 
>> e.g., Sequential backward selection:
>> 
>> {x1, x2, x3} ---> estimate performance on {x1, x2}, {x2, x3} and {x1, x3}, 
>> and pick the subset with the best performance
>> {x1, x3} ---> estimate performance on {x1}, {x3} and pick the subset with 
>> the best performance
>> {x1}
>> 
>> where performance could be e.g., cross-val accuracy.
>> 
>> What do you think?
>> 
>> Best,
>> Sebastian
>> ------------------------------------------------------------------------------
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>> Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>> Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> _______________________________________________
>> Scikit-learn-general mailing list
>> Scikit-learn-general@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
> 
> 
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud 
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to