Common feature selection algorithms implemented in Java, including
- Sequential Forward Selection (SFS)
- Sequential Backward Selection (SBS)
- Sequential Forward Floating Selection (SFFS)
- Sequential Backward Floating Selection (SFBS)
This uses a Wrapper approach, utilising the Weka library as a classifier.
To see how to use view the TestAll class, which guives an example of creating a new FeatureSelection object and shows how to utilise the various stopping methods.
Datasets used for testing:
Sample output from WINE dataset on random training:testing (70:30) split of the data
------------------- Sequential backward floating selection for 10 features Accuracy using all features: 47.059% Accuracy using features ([2, 3, 6, 7, 8, 9, 10, 11]): 94.118% ------------------- ------------------- Sequential backward floating selection Accuracy using all features: 41.176% Accuracy using features ([0, 1, 2, 8, 9, 11]): 88.235% ------------------- ------------------- Sequential floating forward selection for 5 features Accuracy using all features: 94.118% Accuracy using features ([1, 2, 12]): 94.118% ------------------- ------------------- Sequential forward selection Accuracy using all features: 82.353% Accuracy using features ([0, 1, 6, 10]): 88.235% ------------------- ------------------- Sequential backward selection Accuracy using all features: 64.706% Accuracy using features ([3, 5, 9, 10, 11]): 82.353% ------------------- ------------------- Sequential forward selection for max 10 features Accuracy using all features: 82.353% Accuracy using features ([0, 6, 7, 9]): 100.000% ------------------- ------------------- Sequential backward selection for max 10 Features Accuracy using all features: 47.059% Accuracy using features ([6, 9, 11]): 88.235% ------------------- ------------------- Sequential floating forward selection Accuracy using all features: 41.176% Accuracy using features ([1, 5, 8, 9, 10]): 76.471% -------------------