Skip to content

evoFE

1.0.0Package record

Evolutionary Feature Engineering

0packages depend
1.2Kdownloads / year
83.7%test coverage
13/13flavors OK

Overview

About

Automates feature engineering using evolutionary algorithms inspired by genetic programming. Starting from raw input features, the package evolves candidate transformation recipes through selection, crossover, and mutation, evaluating fitness via cross-validation or train/validation splits with gradient-boosted tree models ('LightGBM' or 'XGBoost'). Built-in transformers include arithmetic, logarithmic, and power operations, interaction terms, target encoding, quantile and log-based binning, principal component analysis, truncated singular value decomposition, Uniform Manifold Approximation and Projection (UMAP) dimensionality reduction, and minimum spanning tree (MST) graph-based clustering. The evolutionary search yields an optimised feature recipe that can be applied to new data for prediction. Methods are described in McInnes et al. (2018) doi:10.21105/joss.00861, Ke et al. (2017) doi:10.48550/arXiv.1711.08789, Chen and Guestrin (2016) doi:10.1145/2939672.2939785, Gagolewski (2021) doi:10.1016/j.softx.2021.100722, Gagolewski (2026) doi:10.32614/CRAN.package.lumbermark, and Gagolewski (2026) doi:10.32614/CRAN.package.deadwood.

Changes in 1.0.0

New Features

  • **Untouched confirmation holdout (holdout_frac)**: With evaluation_strategy = "cv", a stratified fraction of rows is excluded from the entire search and scored once after evolution. The result is reported as holdout_fitness and a new search_gap diagnostic (holdout minus validation score) on the evo_recipe object and in summary(), making search-level overfitting visible.
  • **Leakage-safe CV fold strategies (cv_strategy)**: New options "time" (contiguous chronological blocks ordered by time_col, so validation always lies in the future of training) and "group" (all rows of a group_col entity stay in one fold, balanced greedy assignment) alongside the default "random".
  • **Multi-fidelity evaluation (multi_fidelity, mf_sample_frac, mf_warmup_frac)**: Optional cost reduction in which warm-up generations screen individuals on row-subsampled folds; the most promising half is re-evaluated at full fidelity before any selection decision, keeping fitness comparisons apples-to-apples.
  • **New transformer date_diff**: Signed difference in days between two datetime columns.

Breaking Changes

  • The mbo_infill_opt = "ea" option is deprecated and ignored with a warning. The emoa package is no longer needed.

Enhancements

  • Migrated Bayesian Optimisation backend from mlrMBO / ParamHelpers / smoof / lhs to mlr3mbo / paradox / bbotk. The public API (make_tunable(), lightgbm_mbo, xgboost_mbo) remains fully unchanged.
  • Removed legacy packages mlr, randomForest, DiceKriging, and emoa from Suggested dependencies. The manual Kriging-to-RandomForest surrogate fallback has been replaced by mlr3mbo's transparent internal surrogate management.
  • Reduced package dependencies in Imports from 12 to 11.
  • Added support for a **Hybrid Island Population Model** in evolve_features() via parameters islands, migration_interval, migration_rate, and gene_migration_prob.
Show all changes in 1.0.0Hide the rest of the changes in 1.0.0
  • **Recipe-Level Migration**: Exchanges complete successful feature recipes between islands in a Ring topology to preserve co-adapted interactions. Guarded against edge cases where dynamic population sizes shrink below migration_rate.
  • **Gene-Level Migration (Injection)**: Periodically injects highly successful individual features (genes) from the ring neighbor's best individual into the local mutation pool. Genes diffuse naturally through the ring over successive migrations, creating a gradient of innovation where each island builds hierarchically on its neighbor's features.
  • **Independent Local Stagnation**: Dynamic population sizing and adaptive exploration rates are computed independently per island, allowing stagnant islands to expand and explore while active ones stay compact. Population growth is capped at 5x pop_size to prevent runaway expansion.
  • **Verbose Reporting**: Clear logging has been integrated to distinguish exactly which island and individual is being evaluated, including gene pool injection events.
  • Added support for a **Hybrid Feature Mask Approach** for raw feature selection alongside evolved feature engineering:
  • **Sigmoid Active Mask Initialization**: Guides active feature masks of new individuals using baseline model importances centered at average feature importance.
  • **Smart Mask Mutation Operators**: Supports multi-column toggles scaled via a dynamic geometric distribution, single raw feature toggles with temperature-scaled importance probability, and complete mask recalculation.
  • **With-Replacement Multivariate Sampling**: Employs with-replacement sampling and deduplication for multivariate transformers to concentrate inputs around active, important features.
  • **Pruning Safety Floor Restoration**: Safeguards evaluations by automatically restoring raw features to meet the min_active floor if all genes are pruned during evaluation.
  • **Cache Hit Logging Reduction**: Silenced redundant (Cache Hit) prints for centroid distance components to reduce console verbosity.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 11.4 min · r-release-linux-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK8 OK2026-06-10
Advisories

none known

Documentation

In release 1.0.0
READMEYes · 552 wordsVignettesYes · 1 · dynamicNEWSYes · 100% structured · mentions 1.0.0Citation fileNo
Description cites a JOSS paper
Help pages
48 (9 internal)includes a package overview page
Examples that run
21%3 run in a plain check · 10 only when donttest examples are enabled (R CMD check --as-cran) · 1 never run
Exported functions with examples
37%
Documented parameters
100%
Return-value docs
100%
Help pages citing references
0%

Also includes 3 demo scripts (run with demo())

Downloads

1.2K
CRAN downloads in the past year
Rank #14,253 · ~3/day · ~97/mo
Daily download trend is not available in this view yet.
30930 days
82590 days
1.2K1 year
Compare downloads with other packages →
Also on32 r2u2 autocran

Repository

6Stars
0Forks
0Open issues
0Open PRs
0Releases
290Commits
1Commit identities
290 commits · Last activity 2026-09-15 · +20% stars, 30d · Default branch at 1.1.0, ahead of CRAN 1.0.0 (checked 2026-10-18)
Responsiveness
not measured

Stars over time

2026-08-26 · 52026-10-05 · 6
PracticesBeta

4 development-tooling and community-health practices detected across 3 families in the upstream repository

Checks run against github.com/tanopereira/evofe on 2026-10-18.

Continuous integration (1)
GitHub Actions
Docs source (1)

GitHub Pages site last deployed 2026-09-15

CRAN release process (2)
cran-comments.mdCRAN-SUBMISSION
How this is detected·Detection ruleset v3 (2026-09-26)

Dependencies

Declared dependencies
26 external dependencies (excludes base and recommended)

Installing evoFE adds 50 packages (33 with compiled code, 47 MB of source tarballs). Heaviest: BH 14 MB, data.table 5.7 MB, spacefillr 3.1 MB.

Depends (0)
none
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

People & History

People (1)
Author, Maintainer since 0.1.0 (2026)
Releases (2)

Pick two releases to compare their code metrics.

  • 1.0.0Latest
    record
    2026-08-25 · current release · diff ↗ ·
    added 26 exports
    compute_calibrated_mae, compute_calibrated_rmse, compute_complexity_penalty, compute_ts_refinement, ensemble_islands, evo_evaluators, get_in_neighbors, get_neighbors, make_tunable, migration_config, policy_gibbs_pull, policy_gibbs_push, policy_push_uniform, policy_tiered_admission, register_evaluator, register_transformer, resolve_migration_transactions, topology_complete, topology_custom, topology_grid, topology_hypercube, topology_ring, topology_tiered, topology_torus, tournament_select, view
  • 0.1.0
    record
    2026-06-09
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-06-09
Total releases
2 / 1 yrs
License
MIT + file LICENSE OSI
Download size
244 KB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("evoFE")
Pereira, G. (2026). evoFE: Evolutionary Feature Engineering (Version 1.0.0) [Computer software]. https://doi.org/10.32614/CRAN.package.evoFE

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for evoFE version 1.0.0 [Data set]. HJJB, LLC. Data release v2026-10-21. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy