Feature Selection Toolbox FST4
UTIA · Czech Academy of Sciences
Feature Selection Toolbox 4 · release 4.2.0

Find the best subset of a large set.

Features for a model, sensors for a design, tests for a panel, assets for a portfolio — whenever a few must be picked out of thousands of candidates, FST4 searches for the subset that scores best under a quality criterion you choose: one of its built-in statistical filters and classifier wrappers, a C++ class of your own, or any program in any language.

Provably optimal where the criterion allows it, near-optimal at thousands of candidates — ten thousand and more with the budgeted stochastic search — and the same answer, bit for bit, on every machine and at any thread count.

  • 15 search algorithms · 18 criteria · 8 metrics
  • 104 candidates → 500 in minutes
  • your criterion, in any language
  • one command, no C++ coding needed
  • free software · AGPL-3.0

Read the introduction → Get FST4 on GitHub

FST4 scores the set, not its members the 7 strongest alone — they overlap 0.71 the 7 best together — complementary 0.93 brightness = a candidate's value alone · bars = value of the set

Built for anyone who has to choose a subset

Machine learning and statistics

Feature and variable selection for classifiers and regressors: statistical filters (Bhattacharyya, divergence, Mahalanobis, multinomial) and wrappers around kNN, Bayes, LDA, logistic regression, Random Forest, linear and RBF-kernel SVM, ridge and kNN regression — optimizing accuracy, balanced accuracy, F1, AUC or R², estimated honestly on nested data splits. See Usage.

Measurement, sensing, experiment design

Which sensors to install, which tests to keep in a panel, which measurements justify their price: give every candidate an acquisition cost and FST4 trades criterion value against cost (--feature-costs, --regularize-by weights). Data goes in as a CSV straight from a spreadsheet. See the FST4 CLI reference.

Any set function, any field

Your program scores a subset, FST4 drives the search — through a line protocol a few lines of Python, R or awk implement, with or without a data file (--features N declares an abstract universe). The full search machinery applies, Branch & Bound included if you assert your measure is monotone. See your own criterion in the introduction.

Optimization power, and speed where dimensionality bites

Optimal when the criterion allows it, near-optimal otherwise

Four Branch & Bound variants return the provably optimal subset of a given size under a monotone criterion, orders of magnitude below the cost of exhaustive search (also available). Where no such guarantee exists, floating, oscillating and dynamic oscillating searches land within a whisker of the optimum for a tiny fraction of its cost and deliver the best subset of every size in one run; hybrid and ensemble step evaluators, Monte Carlo probing and Dependency-Aware Feature ranking complete the family.

Fast where classic methods stall

The budgeted stochastic (sampled) sequential search bounds the cost of every step by a candidate budget independent of dimensionality: the 10,105-term text-categorization data is searched to 500 terms in minutes (demo37t), where classic floating search needs days. Candidate evaluations fan out to any number of threads with results identical to a sequential run. The method is described in Somol and Grim, 2026.

One command — no C++ coding required

# pick 10 of a spreadsheet's columns by Random Forest accuracy, then validate on the held-out part
fst4 --data measurements.csv --criterion wrapper-rf --search sffs --target-d 10 --validate rf

# any set function: your program scores subsets, FST4 searches — no data file at all
fst4 --features 2000 --criterion extern-value --extern-no-data --extern-cmd "python3 score.py" \
     --search sffs --target-d 25

The fst4 command-line tool exposes the whole toolbox: every published demo is a flag set or a config file; JSON and CSV output, pipe-clean stdout, ROC/PR and overfitting curves, SVG export. The C++ library underneath is there when you want the API. Reproducibility is a contract, not a hope: seeded runs reproduce seed-for-seed across Windows, macOS and Linux, and a byte-exact suite of 112 scenarios gates every release on all three.

Start here

News

  • October 2026 This site launched, replacing the FST3 pages. The previous toolbox generations remain available in the Legacy section.
  • October 2026 FST4 v4.2 released — the first public FST4 version, and the largest change to the toolbox since FST3 itself: C++17 header-only library, the fst4 command-line tool, five new deterministic wrapper models, wrapper metrics beyond accuracy, external classifier/criterion bridges, research-grade reporting, and full bit-identical threading. Published on GitHub under the AGPL-3.0 (see Download); see History for the complete account of the 4.0 → 4.1 → 4.2 lineage.
  • August 2026 Paper on the budgeted stochastic search — Somol and Grim, Stochastic Sequential Search in Very-High-Dimensional Feature Selection, arXiv:2608.01502: the method behind FST4's sampled sequential step (--evaluator sampled, demo36 and demo37t). See References.

Voices from users

From the toolbox's guestbook over the years, shared anonymously.

“For me is impressive the amount of work UTIA have made to help everyone solving problems all around the world. I want to express my gratitude from Spain.”

— a user from Spain

“Nice work, thank you! Very neat code!”

— a user

“Thanks for the code!”

— a user

Cite FST

If FST4 contributes to your research, please cite the toolbox paper and the toolbox introduction:

Petr Somol and Pavel Pudil. Feature Selection Toolbox. Pattern Recognition, 35(12):2749–2759, 2002.

Petr Somol, Pavel Vácha, Stanislav Mikeš, Jan Hora, Pavel Pudil, and Pavel Žid. Introduction to Feature Selection Toolbox 3 — The C++ Library for Subset Search, Data Modeling and Classification. UTIA Tech. Report No. 2287, 2010 (PDF).

The publications describing the methods implemented in FST — from the floating and oscillating searches to the 2026 stochastic sequential search — are listed in the FST-related publications section of the References page.

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.