Example 33t: Threaded Oscillating Search in very high-dimensional feature selection. More...
#include <boost/smart_ptr.hpp>#include <exception>#include <iostream>#include <cstdlib>#include <string>#include <vector>#include "error.hpp"#include "global.hpp"#include "subset.hpp"#include "data_intervaller.hpp"#include "data_splitter.hpp"#include "data_splitter_randrand.hpp"#include "data_scaler.hpp"#include "data_scaler_void.hpp"#include "data_accessor_splitting_memTRN.hpp"#include "data_accessor_splitting_memARFF.hpp"#include "criterion_multinom_bhattacharyya.hpp"#include "criterion_wrapper.hpp"#include "classifier_multinom_naivebayes.hpp"#include "search_bif.hpp"#include "seq_step_straight_threaded.hpp"#include "search_seq_os.hpp"
Functions | |
| int | main () |
Example 33t: Threaded Oscillating Search in very high-dimensional feature selection.
| int main | ( | ) |
As alternative to standard sequential evaluation of feature subset candidates FST3 enables threaded candidate subset evaluation. All FST3 sequential search methods can be easily parallelized by using Sequential_Step_Straight_Threaded instead of Sequential_Step_Straight evaluator object. The actual search speed gain depends on particular problem setting. In small-sample, low-dimensional settings, or when criterion evaluation is very fast, the actual gain may remain negligible or even negative due to thread management overhead (see Example 11: Wrapper-based feature selection with Floating Search.). However, in computationally more complex cases as illustrated here on the threaded version of very-high-dimensional problem (see Example 33: Oscillating Search in very high-dimensional feature selection.) the gain is becoming substantial.
References FST::Search_OS< RETURNTYPE, DIMTYPE, SUBSET, CRITERION, EVALUATOR >::search(), FST::Search_BIF< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >::search(), and FST::Search_OS< RETURNTYPE, DIMTYPE, SUBSET, CRITERION, EVALUATOR >::set_delta().
1.6.1