Feature Selection Toolbox FST4
UTIA · Czech Academy of Sciences
Loading...
Searching...
No Matches
fst4_cli::Config Struct Reference

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. More...

Public Member Functions

bool detailed_report () const
 true for --report detailed (the research sections; standard output is unchanged by them)
bool data_is_stdin () const
 true for --data - (dataset piped in on standard input)
bool data_free () const
const std::string & data_path () const
 what the readers open: the stdin buffer when --data -, the given path otherwise
bool has_missing_value () const
 true when --missing-value was given (NaN-off sentinel, self-compare)
bool has_csv_missing_to () const
 true when --csv-missing-to was given (NaN-off sentinel, self-compare)
bool is_filter_criterion () const
 true for the five built-in statistical-model filters (no classifier training)
bool is_wrapper_criterion () const
 true for any "wrapper-*" criterion (classifier- or regressor-based)
bool is_regression_criterion () const
 true for the two regression wrappers (dependent variable = the class label, "regression simulating classification")
bool has_wrapper_metric () const
 false = the plain-accuracy path; true when --wrapper-metric/--class-weights select the metric palette
bool nested_splits () const
 true when --splitter2 defines an inner (depth-1) splitting stack
bool is_bb_search () const
bool is_sequential_search () const
 true for the sequential-family searches (sfs/sbs/sffs/sbfs/sfrs/sbrs/os/dos) – the ones driven through an EVALUATOR/--evaluator

Public Attributes

std::string data
 --data: path to the data file (TRN/ARFF/CSV), or "-" to read the dataset from standard input (then --format is required); "" when --features is used instead (data-free entry)
std::string data_resolved
 --data -: the temporary file backing the buffered stdin; "" = --data is itself a path. The writers keep echoing --data, so the reported invocation stays "-" (and byte-stable)
std::string format
 --format: data file format (trn|arff|csv); "" = infer from extension
std::string csv_class
 CSV class column: "" = last column; integer = 0-based file column index; otherwise = header column name (implies a header row).
std::string csv_delimiter
 auto | comma | semicolon | tab (auto = detected from the first line; decimal commas accepted when delimiter != comma)
std::string csv_header
 auto | yes | no (auto = any non-numeric non-class field in line 1 means header)
double csv_missing_to
 NaN = off; else: the CSV loader maps missing FEATURE tokens to this code and keeps the row (pair with --missing-value <same code> for imputation; void scaler only; missing class labels still skip).
std::string splitter
 outer splitter (splitting depth 0)
std::string splitter2
 inner splitter (splitting depth 1); "" = single-level
std::string scaler
 --scaler: data normalization – void (default, none) | to01 (per-feature to [0,1]) | white (whitening: zero mean, unit variance)
std::string scaler_fit
 all (default: fit on the whole dataset before splitting) | train (per-split: fit on each depth-0 TRAIN part only, so no test-part statistics leak into the transform)
std::string criterion
 --criterion: feature-selection criterion name (a normal-/multinomial-model filter or a wrapper-* classifier/regressor criterion; see --list for the full registry with validity notes)
std::string knn_distance
 --knn-distance: kNN distance metric – L1 | L2 (default) | Lp (p=3/2, compile-time menu)
std::string search
 --search: search algorithm name (bif, sfs/sbs, sffs/sbfs, sfrs/sbrs, os, dos, exhaustive, montecarlo, bb-basic/bb-improved/bb-fast/bb-bbpp)
std::string search2
 seeding pre-search ("bif"): its result subset seeds the main search (demo25t/33)
std::string svm_kernel
 linear | rbf | poly | sigmoid (default rbf; LINEAR/SIGMOID may freeze LibSVM on some data)
std::string svm_optimize
 none | pre | alternating: LibSVM C/gamma/coef0 grid optimization (demo12t / demo23)
std::string regr_multipliers
 comma list: kernel-multiplier sweep, best-by-train wins (demo11reg)
std::string evaluator
 sequential step object: straight | hybrid (filter prefilter, demo53) | ensemble (voting, demo50) | sampled (budgeted stochastic step)
std::string hybrid_prefilter
 filter criterion pre-filtering candidates (with --evaluator hybrid)
std::string ensemble_knn_ks
 comma list of kNN k values forming the voting ensemble (with --evaluator ensemble)
std::string step_sampler
 sampled evaluator proposal policy: softmax | uniform | topk
std::string step_stats
 sampled evaluator per-feature statistic: zcontrast | rawmean
std::string classify_samples
 file of whitespace-separated samples to classify on the selected subspace (demo63)
std::string validate
 comma list of classifiers for final depth-0 validation; "" = none; "same" = the wrapper criterion's classifier
std::string wrapper_metric
 wrapper criterion metric beyond accuracy: balanced-accuracy | f1 | f1-macro | auc (classification) | r2 | neg-rmse | neg-mae (regression); "" = accuracy (default)
std::string class_weights
 comma list of per-class cost weights, class-index order (classification wrappers); "" = unweighted
unsigned int f1_positive
 class index scored as positive by --wrapper-metric f1 (two-class data; default 1)
std::string tracker
 dupless (default) | regularizer | stabileval | feature-stats
std::string tracker_attach
 "" = auto (search object; regularizer attaches to the evaluator per demo choreography)
std::string regularize_by
 secondary criterion for the regularization sweep: subsetsize | weights
std::string regularize_margins
 comma list of margins for optimize_within_margin
std::string feature_costs
 comma list of per-feature costs (with --regularize-by weights)
std::string output
 --output: result format on stdout – text (default) | json | csv; with json/csv all search progress goes to stderr
std::string verbosity
 --verbosity: search progress verbosity – silent | normal (default) | detailed
std::string progress_mode
 search progress delivery: text (default) | json (one line per improved solution) | quiet (observer swallows progress)
std::string compare_config
 config file of a second scenario: run it too and report cross-scenario tracker similarity (the demo55 protocol)
double missing_value
 NaN = off; else: substitute this exact value by the per-feature average of the available values – dataset-wide by default, the depth-0 TRAIN part's under --scaler-fit train (demo62; void scaler only).
unsigned int cv_folds
 --cv-folds: number of outer cross-validation folds (with --splitter cv; default 3)
unsigned int holdout_train
 --holdout-train: percentage of data used for outer training (with --splitter holdout; default 70)
unsigned int rr_splits
 --rr-splits: outer randrand/randfix run count (number of random splits)
unsigned int rr_train
 --rr-train: % of samples drawn for outer training
unsigned int rr_test
 --rr-test: % of samples drawn for outer testing (disjoint from training)
unsigned int cv2_folds
 --splitter2-cv-folds: number of inner cross-validation folds (with --splitter2 cv; default 3)
unsigned int holdout2_train
 --splitter2-holdout-train: inner training percentage (with --splitter2 holdout; default 70)
unsigned int rr2_splits
 --splitter2-rr-splits: inner randrand/randfix run count – the --splitter2 twin of rr_splits
unsigned int rr2_train
 --splitter2-rr-train: % of samples drawn for inner training – the --splitter2 twin of rr_train
unsigned int rr2_test
 --splitter2-rr-test: % of samples drawn for inner testing – the --splitter2 twin of rr_test
unsigned int knn_k
 --knn-k: k for the kNN classifier (with --criterion wrapper-knn; default 3)
double ridge_lambda
 ridge regression L2 weight penalty (default 0.01; bias unpenalized)
std::string extern_cmd
 external-tool bridge command (with --criterion wrapper-extern or extern-value); USER-SUPPLIED CODE EXECUTION — see classifier_extern.hpp / criterion_extern_value.hpp
bool extern_monotonic
 the user's assertion that the extern-value measure is cardinality-monotonic (admits bb-* searches; optimality rests on the assertion)
bool extern_no_data
 suppress the extern-value DATA block: the tool is a pure set function over index sets
unsigned int features_n
 --features N: data-free entry — an abstract universe of N features, no --data at all (extern-value --extern-no-data only; "Tier 2")
double linsvm_c
 linear SVM regularization C (default 1.0)
std::string linsvm_loss
 linear SVM loss: l2 (squared hinge, default) | l1 (hinge)
unsigned int linsvm_maxiter
 linear SVM dual CD sweep cap (default 1000)
double linsvm_tol
 linear SVM projected-gradient stopping threshold (default 0.1)
std::string rbfsvm_optimize
 none | pre | alternating: native RBF SVM C/gamma optimization (mirrors --svm-optimize)
double rbfsvm_c
 RBF SVM regularization C (default 1.0).
double rbfsvm_gamma
 RBF width on standardized features (default 0 = auto: 1/d).
std::string rbfsvm_loss
 RBF SVM loss: l1 (hinge, the C-SVC correspondence, default) | l2 (squared hinge).
unsigned int rbfsvm_maxiter
 RBF SVM kernel dual CD sweep cap (default 1000).
double rbfsvm_tol
 RBF SVM projected-gradient stopping threshold (default 0.1).
unsigned int rf_trees
 Random Forest wrapper: number of trees (default 100).
unsigned int rf_mtry
 features tried per node; 0 = floor(sqrt(subset size))
unsigned int rf_max_depth
 Random Forest tree depth cap; 0 = unlimited.
unsigned int rf_min_leaf
 minimum samples per leaf (default 1)
unsigned int search2_d
 seed subset size for --search2 (0 = use --target-d)
double svm_c
 --svm-c: LibSVM regularization C (with --criterion wrapper-svm); 0 = LibSVM library default, or the value found by --svm-optimize
double svm_gamma
 --svm-gamma: LibSVM RBF/poly/sigmoid kernel width (with --criterion wrapper-svm); 0 = LibSVM library default, or the value found by --svm-optimize
double svm_coef0
 --svm-coef0: LibSVM poly/sigmoid kernel bias term (with --criterion wrapper-svm); 0 = LibSVM library default, or the value found by --svm-optimize
double logreg_lambda
 logistic regression L2 weight penalty (biases unpenalized)
unsigned int logreg_maxiter
 logistic regression Newton iteration cap
double logreg_tol
 logistic regression gradient-norm stopping tolerance
double regr_multiplier
 weighted-neighbours kernel multiplier (0 = library default)
unsigned int hybrid_keep_perc
 hybrid evaluator: percentage of prefiltered candidates kept (demo53: 50)
unsigned int hybrid_keep_max
 hybrid evaluator: hard cap on kept candidates
unsigned int step_cap
 sampled evaluator: max candidate evaluations per forward step (0 = no cap)
unsigned int step_cap_backward
 sampled evaluator: max candidate evaluations per backward step (0 = full sweeps, exact floating correction)
double step_cap_frac
 sampled evaluator: constant-percentage schedule, cap = ceil(frac*pool) (0 = off, use step_cap); forward only
bool step_frozen
 sampled evaluator: freeze statistics after warm-up (frozen-ranking ablation)
double step_explore
 sampled evaluator: exploration-floor fraction of each proposal batch
double step_tau
 sampled evaluator: softmax temperature (0 = robust automatic scale)
unsigned int step_decay
 sampled evaluator: per-feature statistics averaging horizon (evaluations)
unsigned long warmup_probes
 sampled evaluator: random probes seeding the statistics before the search (0 = off)
unsigned int warmup_card
 sampled evaluator: warm-up probe cardinality
unsigned int restarts_nonimproving
 random-restart protocol: stop after N consecutive non-improving runs (0 = off; demo22)
unsigned long restarts_max
 random-restart safety cap on total runs (0 = unlimited)
bool bias_estimate
 estimate classifier bias on the selected subset (demo56)
unsigned int target_d
 target subset size (--target-d); 0 = optimize subset size (wrapper criteria only – monotonic filter criteria and B&B/os require a nonzero value)
unsigned int os_delta
 oscillation cycle depth (--search os; default 1)
unsigned int dos_delta
 oscillation cycle depth (--search dos; default 3)
unsigned int sffs_delta
 floating-frontier bound: SFFS/SBFS stop at target-d +/- delta (0 = classic full frontier)
unsigned int generalization
 g-tuples per sequential step (demo21); 1 = classic
unsigned long long mc_trials
 montecarlo stopping: max trials (0 = unlimited if mc_seconds set)
unsigned long mc_seconds
 montecarlo stopping: wall-clock budget (0 = none)
unsigned int mc_card_min
unsigned int mc_card_max
 montecarlo probe cardinality range upper bound (with mc_card_min, 0,0 = full range)
double mc_card_prob
 montecarlo per-feature inclusion probability (0 = off)
double bb_gamma
 FBB prediction optimism (default 1.0).
unsigned int bb_delta
 FBB minimum prediction evidence (default 1).
unsigned long tracker_capacity
 0 = type default (dupless: top_k; others: unlimited)
double tracker_margin
 dupless-family inclusion margin (0 = only improving results)
int daf_rank
 DAF ranking variant to extract from feature-stats (-1 = off; 0|1).
unsigned int daf_count
 number of top-DAF features to report (0 = all)
unsigned int daf_validate_every
 validate incrementally built top-DAF subsets every K steps (0 = off)
unsigned int daf_pairs
 pairwise DAF statistics over the top-K DAF0 features (0 = off)
unsigned int daf_pairs_top
 number of top pairs (by pair-DAF0) to report (0 = all)
std::string report
 standard (default) | detailed (adds the research sections: curve_over_d, ROC/PR, confusion, tuned parameters)
std::string dump_scores
 file to receive per-holdout-sample true/predicted labels + per-class scores of the final subset (the first --validate classifier); "" = off
std::string curves_svg
 file to receive a dependency-free SVG rendering of the --report detailed curves (ROC, PR, criterion-vs-holdout over d); "" = off
unsigned int threads
 number of worker threads for candidate evaluation; 1 = sequential evaluation, deterministic ordering (default 1)
unsigned int top_k
 number of best tracked subsets to report (default 5); also the dupless tracker's default capacity
unsigned int seed
 random seed (--seed); affects randomized components only, e.g. the initial subset of --search os (default 1)
bool stable_output
 omit non-deterministic output (timings) so results are byte-comparable across runs
bool repeat_over_splits
 run the search once per outer split (trial protocol, demo54)

Detailed Description

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.

Member Function Documentation

◆ data_free()

bool fst4_cli::Config::data_free ( ) const
inline

true for --features N: no data file exists, the universe is abstract

◆ is_bb_search()

bool fst4_cli::Config::is_bb_search ( ) const
inline

true for any of the four Branch & Bound variants (--search bb-*)

Member Data Documentation

◆ mc_card_min

unsigned int fst4_cli::Config::mc_card_min

< montecarlo probe cardinality range lower bound (with mc_card_max, 0,0 = full range)


The documentation for this struct was generated from the following file:
Copyright © 2000–present ÚTIA, Institute of Information Theory and Automation of the Czech Academy of Sciences · Contacts · This site sets no cookies and uses no analytics.