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().