NEWS


topolow 2.1.0

Breaking Changes

New Features

Subsampling for Computational Efficiency

How Subsampling Works

When opt_subsample is specified:

  1. Each parameter evaluation uses a random subsample of the specified size
  2. Connectivity is automatically validated; disconnected subsamples are rejected
  3. If connectivity fails, sample size needs to be increased
  4. Different parameter evaluations use different subsamples for robustness
  5. Final embedding always uses the full dataset

The opt_subsample parameter is optional (default: NULL = use full data).

Performance Benefits

Other changes

Recommendations

Bug Fixes

Improvements

New changes towards v3:

#' The function performs these steps in an epoch-based evolutionary strategy: #' 1. Initialization: Starts with the user-provided parameter ranges. #' 2. Epoch Loop: For each epoch: #' a. Generates num_samples using LHS within the current parameter ranges. #' b. If opt_subsample is specified, each evaluation uses a random subsample. #' c. Evaluates parameter sets via cross-validation (in parallel batches). #' d. Range Update (after all but the final epoch): #' - Sorts results by NLL and keeps the top 50%. #' - Updates parameter ranges for the next epoch based on survivors: #' New Min = 0.75 * Min(Survivors), New Max = 1.25 * Max(Survivors). #' - This allows the search to drift and zoom in on optimal regions. #' 3. Finalization: Automatically log-transforms the results from the final epoch #' for direct use with adaptive sampling.

#' @param epochs Integer. Number of optimization epochs. In each epoch, parameters are sampled, #' evaluated, and the best 50% are used to refine the search space for the next epoch. #' Default: 3.

C++ Backend for Core Optimization (Performance)

Performance Comparison

| Dataset Size | Sparsity | R (v2.0) | C++ (v2.1) | Speedup | |--------------|----------|----------|------------|---------| | 100 points | 50% | ~2s | ~0.3s | ~7× | | 500 points | 80% | ~45s | ~4s | ~11× | | 1000 points | 95% | ~180s | ~12s | ~15× |

Benchmarks on 1000 iterations, 3 dimensions. Actual speedup varies with data characteristics.

Backward Compatibility

topolow 2.0.1 (2025-08-30)

Included figures in the vignette.

topolow 2.0.0 (2025-08-19)

The wizard function Euclidify was added to run all the workflow needed to get the main output automatically.

Deprecations

Breaking Changes

New Features

Improvements

Deprecation Timeline

Migration Guide

To update your code:

# Old (deprecated):
result <- create_topolow_map(distance_matrix = my_matrix, 
  # ... other parameters
)

# New (recommended):
result <- euclidean_embedding(dissimilarity_matrix = my_matrix,  # parameter name changed
  # ... other parameters (unchanged)
)

topolow 1.0.0 (2025-07-11)

topolow 0.3.2