| NFST | The Feature Selection Toolbox 4 library: every library component – data access, criteria and classifiers, search algorithms, result trackers and the global infrastructure – lives in this namespace |
| CBranch_And_Bound_Predictor | Defines Interface for Implementations of Prediction Mechanism in Fast Branch and Bound & Branch and Bound with Partial Prediction |
| CBranch_And_Bound_Predictor_Averaging | Averaging Prediction Mechanism in Fast Branch and Bound & Branch and Bound with Partial Prediction |
| CCandidate_Evaluator | Abstract candidate-evaluation strategy (sequential-inline vs. thread-pooled) |
| CCandidate_Evaluator_Sequential | Implements sequential in-line evaluation of a criterion on a set of subset candidates |
| CCandidate_Evaluator_Threaded | Implements concurrent evaluation of a criterion on a set of subset candidates |
| CThreadLocal | Thread-local storage of current subset candidate, criterion clone, and tracker clone |
| CCandidateResult | Temporary storage of subset candidate evaluation results |
| CClassifier | Abstract class, defines interface for classifier implementations (mainly to be used in wrappers) |
| CClassifier_Extern | Bridge classifier delegating training and prediction to a user-supplied external command |
| CClassifier_kNN | Implements k-Nearest Neighbor classifier |
| CNeighbour | Holds information on distance and data-class membership of neighbors processed in Classifier_kNN |
| CClassifier_LDA | Linear (Fisher/Gaussian shared-covariance) discriminant classifier |
| CClassifier_LIBSVM | Wraps external Support Vector Machine implementation (in LibSVM) to serve as FST4 classifier |
| CParameterSet | Nested class to hold parameter candidates in the course of optimize_parameters() run |
| CClassifier_Linear_SVM | Dependency-free linear SVM trained by dual coordinate descent (the method of Hsieh et al., ICML 2008, as popularized by LIBLINEAR — implemented from scratch, no external code) |
| CClassifier_Logistic_Regression | Implements multinomial (softmax) logistic regression classifier |
| CClassifier_Multinomial_NaiveBayes | Implements Naive-like Bayes classifier based on multinomial model |
| CClassifier_Normal_Bayes | Implements Bayes classifier based on normal (gaussian) model |
| CClassifier_Random_Forest | Dependency-free Random Forest classifier (CART trees, Gini impurity, bagging, per-node feature subsampling), deterministic by design |
| CNode | |
| CClassifier_RBF_SVM | Dependency-free RBF kernel SVM trained by kernel dual coordinate descent (implemented from scratch, no LibSVM code; C-SVC with the RBF kernel only, deliberately NOT a LibSVM replacement: no nu-variants, no SVR, no one-class, no probability estimates, no shrinking) |
| CClonable | Abstract class, defines interface for classes that may need to get cloned |
| CClonable_Impl | CRTP mixin implementing the Clonable protocol for a concrete class |
| CCriterion | Abstract class, defines interface for feature selection criterion classes |
| CCriterion_Extern_Value | External-tool criterion: a user-supplied command computes the criterion value itself - unlike wrapper-extern, which exchanges labels and computes accuracy on the FST4 side |
| CCriterion_Filter | Abstract class, defines interface for classes implementing "independent" feature selection criteria |
| CCriterion_Multinomial | Abstract class, defines interface for feature selection criterion implementations based on multinomial model |
| CCriterion_Multinomial_Bhattacharyya | Implements Bhattacharyya distance based on multinomial model to serve as feature selection criterion |
| CCriterion_Multinomial_MI | Implements individual Mutual Information based on multinomial model to serve as feature selection criterion in Best Individual Feature setting (feature ranking) |
| CCriterion_Negative | Returns the negative of another Criterion's result |
| CCriterion_Normal | Abstract class, defines interface for feature selection criterion implementations based on normal model |
| CCriterion_Normal_Bhattacharyya | Implements Bhattacharyya distance based on normal (gaussian) model to serve as feature selection criterion |
| CCriterion_Normal_Divergence | Implements Divergence (distance) based on normal (gaussian) model to serve as feature selection criterion |
| CCriterion_Normal_GMahalanobis | Implements Generalized Mahalanobis distance based on normal (gaussian) model to serve as feature selection criterion |
| CCriterion_Subset_Size | Returns the (positive) subset size sub->get_d() - since FST4 searches maximize, this rates LARGER subsets higher. Wrap in Criterion_Negative to favor smaller subsets instead |
| CCriterion_Sum_Of_Weights | Returns sum of pre-specified feature weights for features in the evaluated subset |
| CCriterion_Wrapper | Wraps Classifier objects to serve as feature selection criterion |
| CCriterion_Wrapper_Bias_Estimate | Wrapper Bias Evaluator - returns bias estimate (difference of classifier accuracy on training and validation data parts) |
| CData_Accessor | Abstract class, defines interface for data access implementations |
| CBlock | One consecutive block of patterns as yielded by Block_Range/blocks() |
| CBlock_Range | RAII range over consecutive data blocks of one DataPart in the current split |
| Citerator | Forward iterator over Block_Range; drives the wrapped getFirstBlock()/getNextBlock() cursor at the range's owned loopdepth |
| CData_Accessor_Splitting | Partly-abstract class, defines support for data splitting |
| CDataSplit | Data splitting support structure; holds one set of intervals (train, test) per each splitting depth and (data)class |
| CData_Accessor_Splitting_Mem | Implements data access to data cached entirely in memory, concrete file type support is delegated to derived classes |
| CData_Accessor_Splitting_MemARFF | Implements data access to data cached entirely in memory, read once from a ARFF file |
| CData_Accessor_Splitting_MemCSV | Implements data access to data cached entirely in memory, read once from a CSV (delimited text) file; see Data_File_CSV for the accepted dialects and options |
| CData_Accessor_Splitting_MemTRN | Implements data access to data cached entirely in memory, read once from a TRN file |
| CData_Accessor_Universe | Data-free accessor over an abstract feature universe of N features (the fst4 CLI's --features N entry; the companion of criterion_extern_value.hpp in its data-free mode) |
| CData_File_ARFF | ARFF data format filter |
| CSkippedColumn | One @ATTRIBUTE column that was recognized but could not be loaded (STRING/DATE/unknown type), for the load-summary report |
| CData_File_ARFF_Feature | ARFF data format filter - representation of an attribute (one @ATTRIBUTE column) |
| CData_File_ARFF_Record | ARFF data format filter - representation of a record (one @DATA row) |
| CData_File_CSV | CSV (delimited text) data format filter — the simplest spreadsheet-to-FST4 path |
| CData_File_CSV_Options | CSV loader options |
| CData_File_TRN | TRN data format filter |
| CData_Interval | Support structure to hold data interval (referring into data held by data accessor) |
| CData_Intervaller | Container to hold list of Data_Interval; implements nested interval reduction |
| CData_Scaler | Abstract class, defines interface for data scaling implementations (for use in data accessors) |
| CData_Scaler_to01 | Implements data normalization (of all feature values) to interval [0,1] |
| CData_Scaler_void | Void data scaler, to bypass data normalization |
| CData_Scaler_white | Implements data whitening (as result, each feature mean value is 0 with normalized stddev) |
| CData_Splitter | Abstract class, defines interface for data splitting implementations (for use in data accessors) |
| CTClassSplitter | Data splitting support structure; holds one set of intervals (train, test) per each (data)class |
| CData_Splitter_5050 | Implements train/test data splitting: first 50% of original data for training, second 50% for testing, each (data)class split separately |
| CData_Splitter_CV | Implements train/test data splitting: by means of k-fold cross-validation |
| CData_Splitter_Holdout | Implements train/test data splitting: use initial x% of original data for training, the rest for testing, each (data)class split separately |
| CData_Splitter_Leave1Out | Implements train/test data splitting: by means of leave-one-out |
| CData_Splitter_RandomRandom | Implements train/test data splitting: use randomly chosen x% of data samples for training and another y% of data for testing, without overlaps, separately in each class |
| CData_Splitter_Resub | Implements train/test data splitting: use all data both for training and then once more for testing |
| CData_Splitter_TrainRandom_TestFixed | Implements train/test data splitting: equal to Data_Splitter_RandomRandom except that the same test data is returned in each loop |
| CDistance | Abstract class, defines interface for distance evaluators to be used in Classifier_kNN |
| CDistance_Euclid | Implements Euclidean (L_2) distance |
| CDistance_L1 | Implements L_1 (city-block / Manhattan) distance |
| CDistance_Lp | Implements L_{p} distance, p equals numerator/denominator (template parameters) |
| CExtern_Bridge | Persistent-child-process line-protocol plumbing shared by the external-tool bridges: Classifier_Extern (TRAIN/TEST label protocol) and Criterion_Extern_Value (VALUE protocol) |
| Cfst_error | FST4 specific error passing class |
| CIndexed_Matrix | Matrix representation and operations, allows operation in selected subspace |
| CIndexed_Vector | Vector representation and operations, allows operation in selected subspace. Also serves as the helper structure for passing matrix-operation intermediate data between higher-level matrix objects and functions |
| CMetric_Spec | Configuration of the wrapper metric; immutable during search, copied by criterion clones (thread-safe, RNG-free) |
| CModel | Abstract class, defines interface for data model implementations |
| CModel_Multinomial | Multinomial ("bag of words") model: per-class term-count sums and the Laplace-smoothed term probabilities P(term|class) derived from them |
| CModel_Normal | Implements normal (gaussian) model |
| Cmsgbuf | Message accumulator for Search::report() - collects one progress message exactly as an std::ostringstream would, for delivery either to an attached Search_Observer or to the search's output stream |
| CRegressor | Abstract class, defines interface for Regressor implementations (mainly to be used in wrappers) |
| CRegressor_Ridge | Closed-form ridge regression (L2-regularized least squares) for wrapper-based feature selection |
| CRegressor_Weighted_Neighbours | Implements experimental regressor that produces weighted average of the predicted variable over neighbours, weighted by distance |
| CResult_Tracker | Abstract class, defines interface for classes that enable collecting multiple results |
| CResultRec | Structure to hold [subset,criterion value] temporary solutions in the course of search |
| CResult_Tracker_Dupless | Collects multiple results, avoiding duplicates |
| CResult_Tracker_Feature_Stats | Collects evaluated subsets to eventually provide Dependency-Aware Feature Ranking coefficients |
| CFeatureStat | Structure to gather feature occurrence statistics over probe subset evaluations |
| CSubSizeStat | Structure to gather probe subset cardinality statistics |
| CPairStat | Structure to hold pairwise feature statistics (2x2 presence-cell contrasts over probe subset evaluations) |
| CResult_Tracker_Regularizer | Collects multiple results. Enables eventual selection of alternative solution based on secondary criterion |
| CResult_Tracker_Stability_Evaluator | Collects multiple results to evaluate various stability measures on the collection |
| CResult_Weighter_Sampled | Online per-feature statistics for budgeted (sampled) sequential steps — discounted batch-standardized DAF contrast |
| CFeatureStat | Per-feature accumulators, one instance per feature index, updated by flush_batch(). m_is/m_isnot are adaptive-rate running means of the batch z-score, one side for evaluations in which the feature was selected ('is') and one for evaluations in which it was not ('isnot'); score() in STATS_ZCONTRAST mode returns their difference. raw_sum_is/raw_cnt_is accumulate the STATS_RAWMEAN statistic instead. n_is/n_isnot count how many evaluations landed on each side — also the exploration counts exposed via count_is()/count_isnot() |
| CBatchEntry | One buffered, not-yet-flushed criterion evaluation: its raw value, the cardinality of the evaluated subset, and the list of selected feature indices — everything flush_batch() needs to z-standardize the batch and fold it into the accumulators |
| CSearch | Abstract class, defines interface for search method implementations |
| CSearch_Branch_And_Bound | Implements Branch and Bound template method as basis for more advanced B&B implementations |
| CNode | Structure representing search tree node |
| CSearch_Branch_And_Bound_Basic | Implements Branch and Bound Basic method, i.e., with randomized node ordering |
| CSearch_Branch_And_Bound_Fast | Implements Fast Branch and Bound, i.e., B&B with full utilization of prediction mechanism |
| CSearch_Branch_And_Bound_Improved | Implements Improved Branch and Bound (IBB) method, i.e., with fully computed node ordering |
| CSearch_Branch_And_Bound_Improved_Threaded | DEPRECATED shim: threaded Improved Branch and Bound (IBB) method |
| CSearch_Branch_And_Bound_Partial_Prediction | Implements Branch and Bound with Partial Prediction (BBPP) method, i.e., with predicted node ordering |
| CSearch_DOS | Implements Dynamic_Oscillating_Search |
| CSearch_Exhaustive | Implements exhaustive (optimal) search yielding optimal feature subset with respect to chosen criterion |
| CSearch_Exhaustive_Threaded | DEPRECATED shim: threaded version of exhaustive (optimal) search |
| CSearch_Monte_Carlo | Repeatedly samples random subsets to eventually yield the one with highest criterion value |
| CSearch_Monte_Carlo_Threaded | DEPRECATED shim: threaded version of randomized search that repeatedly samples random subsets |
| CSearch_Observer | Observer interface for search progress reporting |
| CSearch_OS | Implements Oscillating_Search |
| CSearch_Ranking | Abstract base of the feature-ranking methods: scores features one by one, then turns the ranking into a feature subset |
| COneFeature | Structure to hold [feature,criterion value] pair while ranking features |
| CSearch_Ranking_BIF | Implements Best Individual Features, i.e., individual feature ranking |
| CSearch_Ranking_BIF_Threaded | DEPRECATED shim: threaded Best Individual Features, i.e., individual feature ranking |
| CSearch_Sequential | Abstract class, defines interface for sequential search method implementations, provides common implementation of the "sequential step" operation |
| CSearch_SFFS | Implements Sequential_Forward_Floating_Search and Sequential_Backward_Floating_Search |
| COneSubset | Structure to hold [subset,criterion value] temporary solutions in the course of search |
| CSearch_SFRS | Implements Sequential_Forward_Retreating_Search and Sequential_Backward_Retreating_Search |
| COneSubset | Structure to hold [subset,criterion value] temporary solutions in the course of search |
| CSearch_SFS | Implements Sequential_Forward_Selection and Sequential_Backward_Selection |
| COneSubset | Structure to hold [subset,criterion value] temporary solutions in the course of search |
| CSequential_Step | Abstract class, defines interface for implementations of one selection step in sequential search type of methods |
| CSequential_Step_Ensemble | Implements voting ensemble selection step in sequential search type of methods to possibly improve robustness and stability of feature selection result |
| CSubsetCandidate | Nested class to hold feature/subset candidate info in the course of the ensemble voting process |
| CSequential_Step_Hybrid | Implements hybrid selection step in sequential search type of methods |
| CSubsetCandidate | Nested class to hold [Subset,criterion value] pair in the course of hybrid feature candidate evaluation in Sequential_Step_Hybrid |
| CSequential_Step_Sampled | Implements the budgeted (sampled) sequential selection step: forward steps evaluate only a sampled batch of candidates, backward steps sweep in full unless a backward budget is set |
| CSequential_Step_Straight | Implements standard sequential selection step in sequential search type of methods |
| CSequential_Step_Straight_Threaded | DEPRECATED shim: threaded version of sequential selection step in sequential search type of methods |
| CStopWatch | Simple stopwatch to measure run time of search algorithms |
| CSubset | Stores the info on currently selected features, enables generating permutations, etc |
| CFeature_Range | Read-only forward range over feature indices |
| Citerator | Forward iterator over raw feature indices matching a Kind, skipping non-matching ones |
| Csyncout | Serializes textual reporting from concurrent threads |
| CThreadPool | Implements thread scheduler that assigns jobs up to maximum number of threads allowed |
| CThreadsArray | Structure to keep status of threads in the pool |
| Nfst4_cli | Internals of the fst4 command-line tool: its type aliases, the option record, the run pipeline with its result types, the CLI-specific observers and adapters, and the output emitters |
| CCriterion_Counting | |
| CNullBuf | Swallows all output (used with --verbosity silent) |
| CStdin_Data_File | |
| CObserver_JSON | --progress json: emits one JSON line per improved solution to the progress stream; free-text progress is dropped |
| CObserver_Curve | |
| CConfig | All fst4 CLI settings in one place: one field per command-line flag (plus a few derived/internal fields such as data_resolved), populated by CLI11 in add_options() and consumed by the factory functions and run_pipeline() below. Unless noted, string fields default to "" (flag omitted / feature off); concrete defaults live in the Config() constructor below |
| CPipeline | Everything the run phase needs, assembled by the factories below |
| CRunResult | |
| CValidationEntry | One classifier's/regressor's holdout validation outcome (--validate) |
| CTopEntry | One entry of the dupless tracker's --top-k best distinct subsets |
| CRegEntry | One --regularize-margins sweep point: the best subset within margin of the maximum by the secondary criterion |
| CTrialEntry | One --repeat-over-splits trial's search outcome |
| CStabilityEntry | One named stability/similarity measure computed by the stabileval tracker (see the FST4_STAB macro) |
| CDafEntry | One --daf-rank ranked feature |
| CPairDafEntry | One --daf-pairs pairwise (2-feature) DAF statistic |
| CSweepEntry | One --regr-multipliers sweep point (demo11reg) |
| CCurvePoint | One ROC/PR point at a given decision threshold (see extract_curves()) |
| CClassCurve | One class's ROC and PR curves (see extract_classifier_curves()) |
| CCurveEntry | One curve_over_d point: the best subset of a given size plus its holdout re-validation (the overfitting curve) |
| CCompareResult | Everything produced by a --compare-config second scenario (the demo55 protocol) |
| CSvg_Panel | |