| _src_criteria | |
| classifier.hpp | Defines interface for classifier implementations |
| classifier_extern.hpp | Defines Classifier_Extern — bridge delegating train/test to a user-supplied external command (persistent process, line protocol) |
| classifier_knn.hpp | Implements k-Nearest Neighbor classifier |
| classifier_lda.hpp | Defines Classifier_LDA — shared-covariance Gaussian (linear) discriminant for wrapper-based feature selection |
| classifier_linear_svm.hpp | Defines Classifier_Linear_SVM — dependency-free linear SVM (dual coordinate descent) for wrapper-based feature selection |
| classifier_logreg.hpp | Implements multinomial logistic regression classifier (dependency-free, deterministic; regularized damped-Newton training on internally standardized data) |
| classifier_multinom_naivebayes.hpp | Implements Naive-like Bayes classifier based on multinomial model |
| classifier_normal_bayes.hpp | Implements Bayes classifier based on normal (gaussian) model |
| classifier_rbf_svm.hpp | Defines Classifier_RBF_SVM — dependency-free RBF kernel SVM (kernel dual coordinate descent) for wrapper-based feature selection |
| classifier_rf.hpp | Defines Classifier_Random_Forest — dependency-free, deterministic-by-design Random Forest for wrapper-based feature selection |
| classifier_svm.hpp | Wraps external Support Vector Machine implementation (in LibSVM) to serve as FST4 classifier |
| criterion.hpp | Defines interface for feature selection criterion classes |
| criterion_extern_value.hpp | External-tool criterion: a user-supplied command computes the criterion value over the VALUE line protocol |
| criterion_multinom.hpp | Defines interface for feature selection criterion implementations based on multinomial model |
| criterion_multinom_bhattacharyya.hpp | Implements Bhattacharyya distance based on multinomial model to serve as feature selection criterion |
| criterion_negative.hpp | Criterion_Negative returns the negative of another Criterion's result |
| criterion_normal.hpp | Defines interface for feature selection criterion implementations based on normal model |
| criterion_normal_bhattacharyya.hpp | Implements Bhattacharyya distance based on normal (gaussian) model to serve as feature selection criterion |
| criterion_normal_divergence.hpp | Implements Divergence (distance) based on normal (gaussian) model to serve as feature selection criterion |
| criterion_normal_gmahalanobis.hpp | Implements Generalized Mahalanobis distance based on normal (gaussian) model to serve as feature selection criterion |
| criterion_subsetsize.hpp | Criterion_Subset_Size returns the (positive) subset size - rates larger subsets higher; wrap in Criterion_Negative to favor smaller subsets |
| criterion_sumofweights.hpp | Criterion_Sum_Of_Weights returns sum of pre-specified feature weights for features in the evaluated subset |
| criterion_wrapper.hpp | Criterion_Wrapper adapts Classifier objects to serve as feature selection criterion |
| criterion_wrapper_bias_estimate.hpp | Wrapper Bias Evaluator - returns classifier bias estimate (difference between accuracy on training and validation data parts) |
| dense_train_tools.hpp | Shared dense-training helpers: standardized-design build and Cholesky factor/solve |
| distance.hpp | Defines interface for distance evaluators (to be used primarily in Classifier_kNN) |
| distance_euclid.hpp | Implements Euclidean (L_2) distance |
| distance_L1.hpp | Implements L_1 distance |
| distance_Lp.hpp | Implements L_{p} distance, p equals numerator/denominator (template parameters) |
| extern_bridge.hpp | Persistent-child-process line-protocol plumbing shared by the external-tool bridges (Classifier_Extern, Criterion_Extern_Value) |
| indexed_matrix.hpp | Matrix representation and operations, allows operation in selected subspace |
| indexed_vector.hpp | Vector representation and operations, allows operation in selected subspace |
| model.hpp | Defines interface for data model implementations |
| model_multinom.hpp | Implements multinomial model |
| model_normal.hpp | Implements normal (gaussian) model |
| regressor.hpp | Defines interface for regressor implementations |
| regressor_ridge.hpp | Defines Regressor_Ridge — closed-form L2-regularized linear regression for wrapper-based feature selection |
| regressor_weighted_neighbours.hpp | Experimental regressor, produces weighted average of the predicted variable over neighbours, weighted by distance |
| wrapper_metrics.hpp | Wrapper criterion metrics beyond accuracy (balanced accuracy, F1, AUC, class weights, regression metrics) |
| _src_dataio | |
| data_accessor.hpp | Defines interface for data access implementations |
| data_accessor_splitting.hpp | Defines support for data splitting |
| data_accessor_splitting_mem.hpp | Implements data access to data cached entirely in memory, concrete file type support is delegated to derived classes |
| data_accessor_splitting_memARFF.hpp | Implements data access to data cached entirely in memory, read once from ARFF files |
| data_accessor_splitting_memCSV.hpp | Implements data access to data cached entirely in memory, read once from CSV files |
| data_accessor_splitting_memTRN.hpp | Implements data access to data cached entirely in memory, read once from TRN files |
| data_accessor_universe.hpp | Data-free accessor over an abstract feature universe (--features N; pure set-function optimization) |
| data_file_ARFF.hpp | Enables data accessor objects to read ARFF (Weka) type of data files |
| data_file_CSV.hpp | Enables data accessor objects to read CSV (delimited text, e.g. Excel export) data files |
| data_file_TRN.hpp | Enables data accessor objects to read TRN type of data files |
| data_intervaller.hpp | Container to hold a list of Data_Interval; implements nested interval reduction |
| data_scaler.hpp | Defines interface for data scaling implementations (for use in data accessors) |
| data_scaler_to01.hpp | Implements data normalization (of all feature values) to interval [0,1] |
| data_scaler_void.hpp | Void data scaler, to bypass data normalization |
| data_scaler_white.hpp | Implements data whitening (as result, each feature mean value is 0 with normalized stddev) |
| data_splitter.hpp | Defines interface for data splitting implementations (for use in data accessors) |
| data_splitter_5050.hpp | Implements train/test data splitting: first 50% of original data for training, second 50% for testing |
| data_splitter_cv.hpp | Implements train/test data splitting: by means of k-fold cross-validation |
| data_splitter_holdout.hpp | Implements train/test data splitting: use initial x% of original data for training, the rest for testing |
| data_splitter_leave1out.hpp | Implements train/test data splitting: by means of leave-one-out |
| data_splitter_randfix.hpp | Implements train/test data splitting: equal to Data_Splitter_RandomRandom except that the same test data is returned in each loop |
| data_splitter_randrand.hpp | Implements train/test data splitting: use randomly chosen x% of data samples for training and another y% of data for testing, without overlaps |
| data_splitter_resub.hpp | Implements train/test data splitting: use all data both for training and then once more for testing |
| _src_global | |
| clonable.hpp | Defines interface for classes that may need to get cloned |
| error.hpp | FST4 specific error passing class |
| fst_rand.hpp | FST4-owned pseudo-random number generator (UCRT-compatible LCG), replacing platform-specific std::rand()/std::srand() |
| global.cpp | Empty compatibility stub — the FST4 library is header-only |
| global.hpp | Global definitions |
| subset.hpp | Stores the info on currently selected features, enables generating permutations, etc |
| thread_pool.hpp | Implements thread scheduler that assigns jobs up to maximum number of threads allowed |
| _src_search | |
| branch_and_bound_predictor.hpp | Interface for Implementations of Prediction Mechanism in Fast Branch & Bound and Branch & Bound with Partial Prediction |
| branch_and_bound_predictor_averaging.hpp | Averaging Prediction Mechanism for use in Fast Branch & Bound and Branch & Bound with Partial Prediction |
| candidate_evaluator.hpp | Abstract candidate-evaluation strategy: the seam through which one search algorithm body evaluates candidates either sequentially in-line or concurrently in a thread pool |
| candidate_evaluator_sequential.hpp | Implements sequential in-line evaluation of a criterion on a set of subset candidates |
| candidate_evaluator_threaded.hpp | Implements concurrent evaluation of a criterion on a set of subset candidates |
| result_tracker.hpp | Defines interface for classes that enable collecting multiple results |
| result_tracker_dupless.hpp | Enables collecting multiple results |
| result_tracker_feature_stats.hpp | Computes feature occurrence statistics in a series of evaluated subsets |
| result_tracker_regularizer.hpp | Enables eventual selection of a different subset |
| result_tracker_stabileval.hpp | Enables collecting multiple results, then evaluating various stability measures |
| result_weighter_sampled.hpp | Online per-feature statistics for budgeted (sampled) sequential steps — discounted batch-standardized DAF contrast |
| search.hpp | Defines interface for search method implementations |
| search_branch_and_bound.hpp | Implements Branch and Bound template method as basis for more advanced B&B implementations |
| search_branch_and_bound_basic.hpp | Implements Branch and Bound Basic method, i.e., with randomized node ordering |
| search_branch_and_bound_fast.hpp | Implements Fast Branch and Bound, i.e., B&B with full utilization of prediction mechanism |
| search_branch_and_bound_improved.hpp | Implements Improved Branch and Bound (IBB) method, i.e., with fully computed node ordering |
| search_branch_and_bound_improved_threaded.hpp | DEPRECATED compatibility shim: threaded Improved Branch and Bound is now the merged Search_Branch_And_Bound_Improved with an injected Candidate_Evaluator_Threaded |
| search_branch_and_bound_partial_prediction.hpp | Implements Branch and Bound with Partial Prediction (BBPP) method, i.e., with predicted node ordering |
| search_exhaustive.hpp | Implements exhaustive (optimal) search over all feature subsets |
| search_exhaustive_threaded.hpp | DEPRECATED compatibility shim: threaded exhaustive search is now the merged Search_Exhaustive with an injected Candidate_Evaluator_Threaded |
| search_monte_carlo.hpp | Repeatedly samples random subsets to eventually yield the one with highest criterion value |
| search_monte_carlo_threaded.hpp | DEPRECATED compatibility shim: threaded Monte Carlo search is now the merged Search_Monte_Carlo with an injected Candidate_Evaluator_Threaded |
| search_ranking.hpp | Defines interface for individual feature ranking method implementations |
| search_ranking_bif.hpp | Implements Best Individual Features, i.e., individual feature ranking |
| search_ranking_bif_threaded.hpp | DEPRECATED compatibility shim: threaded individual feature ranking is now the merged Search_Ranking_BIF with an injected Candidate_Evaluator_Threaded |
| search_seq.hpp | Defines interface for sequential search method implementations |
| search_seq_dos.hpp | Implements Dynamic_Oscillating_Search |
| search_seq_os.hpp | Implements Oscillating_Search |
| search_seq_sffs.hpp | Implements Sequential_Forward_Floating_Search and Sequential_Backward_Floating_Search |
| search_seq_sfrs.hpp | Implements Sequential_Forward_Retreating_Search and Sequential_Backward_Retreating_Search |
| search_seq_sfs.hpp | Implements Sequential_Forward_Selection and Sequential_Backward_Selection |
| seq_step.hpp | Defines interface for implementations of one selection step in sequential search type of methods |
| seq_step_ensemble.hpp | Implements voting ensemble selection step in sequential search type of methods |
| seq_step_hybrid.hpp | Implements hybrid selection step in sequential search type of methods |
| seq_step_sampled.hpp | Implements the budgeted (sampled) sequential selection step — per-step candidate evaluations capped, candidates proposed by online per-feature statistics |
| seq_step_straight.hpp | Implements standard sequential selection step in sequential search type of methods |
| seq_step_straight_threaded.hpp | DEPRECATED compatibility shim: threaded sequential selection step is now the merged Sequential_Step_Straight with an injected Candidate_Evaluator_Threaded |
| stopwatch.hpp | Simple tool to measure run time |
| demos | |
| demo10.cpp | Example 10: Basic Filter-based feature selection |
| demo52t.cpp | Example 52t: (Threaded SFRS) Result regularization using secondary criterion |
| demo55.cpp | Example 55: Evaluating Similarity of Two Feature Selection Processes |
| fst4.cpp | Exposes FST4 functionality as a command-line tool: data file, splitter, scaler, criterion, search algorithm and their settings are selected via command-line arguments |